сохранить дочернюю модель () в Yii - PullRequest
1 голос
/ 14 марта 2011

Предположим, у меня есть две таблицы базы данных.Один для форм и другой для полей:

Формы:
ID(pk),user_id,name,description

Поля:
ID(pk),form_id(fk),name,description

Родительская форма "Форма" также имеетполя формы ввода для дочерней таблицы «Поля», такие как fields.name и fields.description.

Что мне нужно: всякий раз, когда я помещаю значения в форму, все поля сохраняются в соответствующие им атрибуты,в том числе дочерняя «Поле» формы ввода.Как таблица формы будет хранить свои собственные поля, и Поля будут хранить свои собственные поля.

Итак, как заставить это работать?Я думаю, что "сохранить дочернюю модель" следует использовать?Но не знаю, как использовать «Сохранить дочернюю модель», так как я новичок в Yii.

Пожалуйста, помогите мне.

Ответы [ 3 ]

1 голос
/ 14 марта 2011

Вы можете сохранить дочерний элемент, зациклив все дочерние элементы и сохранить его (если дочерних элементов больше одного). Например, значение $ _POST, которое передается контроллеру, вы можете установить так, чтобы оно стало таким:

$_POST['con']['user_id'] = 1<br> $_POST['con']['name']='Andrew'<br> $_POST['con']['child'][1]['name'] = 'Some child1'<br> $_POST['con']['child'][1]['description']='some description'<br> etc...

Затем вы можете получить эти значения постов, используя

$model->attributes = $_POST['con'];<br> $model->save();<br> foreach($model->children as $key=>$child){<br> $child->attributes = $_POST['con']['child'][$key];<br> $child->save();<br> }

Обратите внимание, это всего лишь концепция, надеюсь, это поможет вам.

0 голосов
/ 10 декабря 2011

просто попробуйте это

if(isset($_POST['form'] && isset($_POST['fields']){
  $forms->attributes =$_POST['form']
  $fields->attributes =$_POST['fields']

  $valid=$forms->validate();
  $valid=$valid && $fields->validate();  
  if($valid){
          $forms->save(false); //to cancel validation
          $fields->save(false); //to cancel validation
     }
}
0 голосов
/ 16 марта 2011

См. Табличный ввод в Yii Ultimate Guide:

http://www.yiiframework.com/doc/guide/1.1/en/form.table

(я вообще не вижу saveChildModel () в документации Yii ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...