예제 #1
0
 public function actionSet()
 {
     $post = $this->request->post;
     $pk = $post->get('pk');
     $data = $post->get('data', []);
     $field = $post->get('field');
     $name = $post->get('name');
     $modelClass = $post->get('modelClass');
     if (!$data) {
         $data = [];
     }
     if ($pk && is_array($data) && $field && $name && $modelClass) {
         CustomRelation::objects()->filter(['owner_pk' => $pk, 'owner_class' => $modelClass, 'field' => $field, 'name' => $name])->delete();
         foreach ($data as $position => $item) {
             list($relatedClass, $relatedPk) = explode(':', $item);
             $relation = new CustomRelation();
             $relation->owner_pk = $pk;
             $relation->owner_class = $modelClass;
             $relation->related_pk = $relatedPk;
             $relation->related_class = $relatedClass;
             $relation->field = $field;
             $relation->position = $position + 1;
             $relation->name = $name;
             $relation->save();
         }
     }
 }