Example #1
0
 public function setFieldArrayAttribute($field)
 {
     $create = [];
     if (!$field) {
         return;
     }
     if (!$this->exists) {
         $this->save();
     }
     $fields = Field::where('page_id', $this->id)->get();
     if (is_array($field)) {
         foreach ($field as $key => $val) {
             $isset = false;
             foreach ($fields as $v) {
                 if ($v->name == $key) {
                     $isset = true;
                     if (!empty($val)) {
                         $v->value = $val;
                     } else {
                         Field::destroy($v->id);
                     }
                 }
             }
             if (!$isset) {
                 $create[$key] = $val;
             }
         }
         if (sizeof($create) > 0) {
             foreach ($create as $key => $val) {
                 if (!empty($val)) {
                     $f = new Field();
                     $f->name = $key;
                     $f->value = $val;
                     $fields[] = $f;
                 }
             }
         }
         $this->fields()->saveMany($fields);
     }
 }