public static function add($input) { // set rules $rules = array('user_id' => 'required|exists:users,id', 'type_name' => 'required|in:social_targets,social_actions', 'type_id' => 'required|integer', 'currency' => 'required', 'email' => 'required}email', 'total' => 'required|numeric', 'message' => '', 'as_noname' => 'sometimes'); $validator = Validator::make($input, $rules); if ($validator->fails()) { // if fails return array('success' => false, 'errors' => $validator->errors()->all()); } else { // save to database $donation = new Donation(); // set input foreach ($input as $field => $value) { $donation->{$field} = $value; } $donation->status = 0; // new (waiting approval) $donation->save(); // send invoice email Newsletter::addInvoiceNewsletter($donation); return array('success' => true, 'data' => $donation); } }