Логика связанных моделей

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
Антон Смирнов
Сообщения: 284
Зарегистрирован: 2011.07.08, 10:37
Контактная информация:

Логика связанных моделей

Сообщение Антон Смирнов »

В первой версии было так:

Создаем модели:

Код: Выделить всё

$user = new User();
$user->posts = [];
$user->post[] = new Post();
$user->post[] = new Post();
или загружаем

Код: Выделить всё

$user = User::model()->findByPk($id);
Во view (не важно, $user - это новая модель или загруженная):

Код: Выделить всё

foreach ($user->posts as $post) echo $post->name....
Во второй версии, вместо relation, нужно у модели User сделать:

Код: Выделить всё

function getPosts()
{
return $this->hasMany(Post::className(), ['user_id' => 'id']);
}
А теперь вопросы добрым людям (относительно 2 версии):

1) Почему нельзя сделать так:

Код: Выделить всё

$user = User::findOne($id);
foreach ($user->posts as $post) echo $post->name;
(будет ошибка, в первой версии был бы пустой массив на вызов $user->posts)

2) Как сделать тоже, что в самом первом коде, только для 2й версии?
Последний раз редактировалось Антон Смирнов 2014.12.17, 00:43, всего редактировалось 1 раз.
Аватара пользователя
Антон Смирнов
Сообщения: 284
Зарегистрирован: 2011.07.08, 10:37
Контактная информация:

Re: Логика связанных моделей

Сообщение Антон Смирнов »

Просьба: перенесите в форум 2й ветки фреймворка!
Ответить