コード例 #1
0
 public function update($data)
 {
     $sample = null;
     if (isset($data['id'])) {
         if ($sample = Sample::find($data['id'])) {
             $sample->update($data);
             if (isset($data['producer_id'])) {
                 if ($data['producer_id'] == 'new') {
                     unset($data['producer_id']);
                     $producer = new Producer();
                     $producer->name = $data['producer__name'];
                     $producer->customer_id = $sample->customer_id;
                     $producer->contact_person = $data['producer__contact_person'];
                     $producer->email = $data['producer__email'];
                     $producer->phone = $data['producer__phone'];
                     $producer->save();
                     $sample->producer_id = $producer->id;
                     $sample->save();
                 }
             }
             if (isset($data['varietals'])) {
                 if (is_array($data['varietals'])) {
                     $sample->sample_varietals()->delete();
                     foreach ($data['varietals'] as $varietal_data) {
                         if ($varietal_data['name'] && $varietal_data['percentage']) {
                             $sample_varietal = $sample->sample_varietals()->save(new SampleVarietal($varietal_data));
                         }
                     }
                 }
             }
             if (isset($data['prizes'])) {
                 if (is_array($data['prizes'])) {
                     foreach ($data['prizes'] as $prize_data) {
                         if ($prize_data['id']) {
                             $sample_prize = SamplePrize::find($prize_data['id']);
                             $sample_prize->name = $prize_data['name'];
                             $sample_prize->year = $prize_data['year'];
                             $sample_prize->save();
                         } elseif ($prize_data['name']) {
                             $sample_prize = $sample->sample_prizes()->save(new SamplePrize($prize_data));
                         }
                     }
                 }
             }
             $sample = $this->getById($data['id']);
         }
     }
     return $sample;
 }