yii2 ->load() и ->attrubutes = ... -- Какая разница при загрузке значений, данных в ActiveRecord, Model
Primary tabs
Что делает вызов $model->load()
load() пытается найти в переданном массива подмассив, который имеет имя. которое доложно быть у "формы" модели -- обычно это имя самой модели.
Что делает вызов $model->attributes =...
Присваивание же методом вроде:
$comment->attributes = Yii::$app->request->post('Comment');
Позволяет сделать то же самое (массово заполнить поля модели из массива), но уже поиском значений не в подмассиве, а в самом передаваемом массиве -- например, в последнем примере это подмассив массив $_POST.
То есть:
- ->attributes = позволяет использовать произвольное имя массива -- то есть имя (идекс по которому лежат эти поля) не важно вообще,
- в то время как load() ищет подмассив с имененем, совпадающем с именем модели, а уже из этого правильно именнованного подмассива извлекает атрибуты.
- Log in to post comments
- 8866 reads