У меня есть модель student (id, name, school_id) и модель school (id, name, ...)
Получается связь school has many students
student принадлежит одной школе всегда.
class School extends \yii\db\ActiveRecord
{
/*.....*/
public function getStudents()
{
return $this->hasMany(Student::className(), ['school_id' => 'id']);
}
/*.....*/
}
При создании школы я хочу вывести чекбоксами всех студентов к которым еще не прицеплена школа, казалось бы, это было логично сделать так (в тплке формы для создания модели School):
<?= $form->field($model, 'students')->checkboxList(ArrayHelper::map($allStudents, 'id', 'name')) ?>
(студентов будет мало, поэтому для упрощения говорим про чекбоксы тут)
но когда начинаю писать rules для валидации поля students (ну, например, чтобы ограничить макс кол-во 5 студентов на школу) то вылетает эксепшн tryin to set readonly attribute!
То есть, получается, что relation - это атрибут только для чтения.
Как же мне красиво использовать ActiveForm и валидацию через rules модели School тут?
Придумывать помимо students еще одно поле student_ids, которое по факту не будет существовать в базе, но будет использоваться для прописывания rules в модели школы?
или есть "правильный" путь?
Спасибо!