Задать вопрос
hromtoster
@hromtoster
Я сижу с хрома в тостере

Как загрузить данные в связанную модель yii?

Привет.

Есть модель с связью:
/**
 * This is the model class for table "{{%setting}}".
 *
 * @property int $id
 * @property string $name
 * @property int $status
 */
class Setting extends \yii\db\ActiveRecord
{
    ...
    public function getAssign()
    {
        return $this->hasOne(SettingAssign::className(), ['setting_id' => 'id']);
    }
    ...
}

Модель связи:
/**
 * This is the model class for table "{{%setting_assign}}".
 *
 * @property int $id
 * @property int $setting_id
 * @property string|null $lang_code
 * @property int $value
 */
class SettingAssign extends \yii\db\ActiveRecord
{
    //модель без изменений.
}


вывожу форму:
assign - имя связи (hasOne)
<?=$form->field($model, "assign[value]")->checkbox();?>
или так:
<?=$form->field($model->assign, "value")->checkbox();?>


Пытаюсь загрузить в модель и в связанную модель:
public function actionIndex()
{
    $model = Setting::find()->with('assign')->where(['name' => 'disconnected'])->one();
    if( $model->load(\Yii::$app->request->post()) && $model->validate()){
        $model->save();
    }

    return $this->render('_form', ['model' => $model]); 
}

Но данные в связанную модель не загружаются, подскажите, почему?

Как правильно загрузить данные в связанную модель?
Я конечно могу сделать так:
$model->assign->load($data);
тогда все загрузится, но не уверен что это правильно.

Подскажите пожалуйста, буду благодарен
  • Вопрос задан
  • 109 просмотров
Подписаться 2 Простой 11 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы