public function save(array $options = array()) { $saved = parent::save($options); if ($saved) { $data = []; if (is_array($this->original)) { $data = $data + $this->original; } if (is_array($this->attribute)) { $data = $data + $this->attribute; } $data = $data + $options; #here we validate the type and return the source reference switch (ActionType::find($data['action_type_id'])->source_type) { case 'order': $action = 3; $order = Order::find($data['source_id']); if ($order) { $users = [$order->user_id, $order->seller_id]; } break; } if (isset($users)) { Notice::create(['action_type_id' => $action, 'sender_id' => $data['user_id'], 'user_ids' => $users, 'source_id' => $data['source_id']]); } } }
public static function create(array $attr = []) { if (isset($attr['features']) && is_array($attr['features'])) { $attr['features'] = json_encode($attr['features']); } return parent::create($attr); }
/** * create many notices. * If user and sender are the same, this notices will be ignored. * @param array $notices [description] * @return [type] [description] */ public static function createMany(array $notices) { $valids = []; foreach ($notices as $notice) { if ($notice['user_id'] != $notice['sender_id']) { $valids[] = $notice; } } return parent::createMany($valids); }
public static function create(array $attr = []) { if (!isset($attr['user_id']) && isset($attr['user'])) { $attr['user']['role'] = @$attr['user']['role'] ?: 'person'; $user = User::create($attr['user']); unset($attr['user']); $attr['user_id'] = $user->id; } return parent::create($attr); }
public static function create(array $attr = [], $normal = true) { $role = $normal ? 'Business' : 'Non Profit'; if (!isset($attr['user_id']) && isset($attr['user'])) { $attr['user']['role'] = $role; $user = User::create($attr['user']); unset($attr['user']); $attr['user_id'] = $user->id; } return parent::create($attr); }
public function save(array $options = array()) { $status_changed = isset($this->original['status']) && $this->attributes['status'] != $this->original['status'] || isset($options['status']) && $this->attributes['status'] != $options['status']; $saved = parent::save($options); if ($saved) { $this->createLog(); if ($status_changed) { $this->sendNotice(); } } return $saved; }