Material и Data
у Material есть поле category
у Data поле content
как написать правило что поле content обязательно если Material->category == 5?
при сохранении формы я делаю
if (
$material->load(Yii::$app->request->post()) &&
$data->load(Yii::$app->request->post())
) {
$valid = $material->validate();
$valid = $data->validate(['title', 'content']) && $valid;
if($valid){
$model->save();
$model->link('data', $data);
}
}
получается надо либо валидировать после связывания, либо создавать переменную в Data и присваивать перед валидацией
Создаёшь одновременно?
'when' => function (self $model) { return $model->material->category === 5; }
Вопросы расставь
одновременно
сохраняй сначала материал, потом добавь правило Артура в дату и пускай валидацию даты после сохранения материала
да но. но это если они уже существуют
тогда и Data надо сохранить в сценарии без поля content, а потом валидировать с ней
так ты не говорил что content должно быть пустое при category!=5
так а что мешает загрузить данные в модели, провалидировать и потом сохранить, и связь проставить?
Материал - данные загрузил проваледировал сохранили Дата данные загрузил а тут еще нет связи с нет и поэтому работать не будет
так проставь связь вручную. $model->populateRelation
попробую спасибо
Во лапшекод.
Зачем тебе две модельки? Сделал бы форму, где бы провалидивал все поля.
обмажутся своими дто и ябут друг друга в жёпы
Ахах, твои дто все ещё может быть.
Обсуждают сегодня