/** * @param Survey $survey * @param array $data * @return bool */ public function update(Survey $survey, array $data) { if(isset($data['questions'])) { foreach ((array)$data['questions'] as $question) { if(!$survey->questions->where('name', $question['name'])->count()) { $survey->questions()->create($question); } } // remove old questions $survey->questions()->whereNotIn('name', array_pluck($data['questions'], 'name'))->delete(); } $this->resetActive($data); $survey->buyer = 1; $survey->seller = 1; $survey->save(); //return $survey->fill($data)->save(); } /** * Reset active buyer or active seller * * @param $data * @return bool */ public function resetActive($data) { if(!isset($data['buyer']) && !isset($data['seller'])) { return false; } if(isset($data['buyer'])) { Survey::where('buyer', 1)->update(['buyer' => 0]); } if(isset($data['seller'])) { Survey::where('seller', 1)->update(['seller' => 0]); } return true; }