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 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; }