Родственные формы в Yii

Я пытаюсь встроить связанные поля формы в основную форму. Но я получаю исключение Array to string conversion, Я думаю, это потому, что я устанавливаю отношение HAS_MANY. Потому что, когда отношение HAS_ONE, форма работает правильно. Итак, как я могу получить поля из таблицы (модель) с отношением HAS_MANY.
Вот отношения:

Модель пользователя:

'address' => array(self::HAS_MANY, 'Address', 'user_id'),

Модель адреса:

'user' => array(self::BELONGS_TO, 'User', 'user_id'),

Часть формы:

<div class="row">
<?php echo $form->labelEx($model->address,'phone'); ?>
<?php echo $form->textField($model->address,'phone',array('size'=>60,'maxlength'=>255)); ?>
<?php echo $form->error($model,'phone'); ?>
</div>

1

Решение

Отношение HAS_MANY создаст массив адресов в вашей пользовательской модели.

Объявление отношений в AR предполагает переопределение отношений ()
метод CActiveRecord. Метод возвращает массив отношений
конфигурации. Каждый элемент массива представляет одну связь
в следующем формате:

Итак, если вы хотите, чтобы все адреса от вашего пользователя, вы используете $model->address как это:

$allAddress = $model->address;
foreach($allAddress in $address){
//@address =  New Address()
//Do some stuff here with your address
}

Но если вы создаете НОВОГО пользователя и ДОБАВЛЯЕТЕ новый адрес для своего пользователя, то создайте пользователя до этого адреса.

$UserModel = new User();
$UserModel->attribute = $userData;
$UserModel->Save();

$AddressModel-> new Address();
$AddressModel->attribute = $addressData;
$AddressModel->user_id = $userModel->id;
$AddressModel->save();

$AddressModel2-> new Address();
$AddressModel2->attribute = $addressData2;
$AddressModel2->user_id = $userModel->id;
$AddressModel2->save();

Для получения дополнительной информации об отношениях в yii, прочитайте Эта статья.

Для создания формы с более чем одной моделью, посмотрите Эта статья.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]