YiiFramework Yii2 реляции

Vano

Новичок
есть $User = Users::findOne(1);
есть таблица сообщений где есть user_id
в моделе Users функция
public function getMessages()
{
return $this->hasMany(Messages::className(), ['user_id' => 'user_id']);
}

вот так мы достаем сообщения юзера
$User = Users::findOne(1);
$messages = $User->messages;

Вопрос: все сообщения пользователя вынимаються из БД уже при первом запросе Users::findOne(1); ?
Или в PHP свойству можна назначать вызов функции? типа $Users->messages = function(){ return 'чето-там' }
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Users::findOne(1) делает именно то, что написано: получает одну запись из users по PK со значением 1,
$Users->messages = можно писать если определить метод setMessages()
телепатией yii не обладает
 

fixxxer

К.О.
Партнер клуба
А мне показалось, что ТС интересуется eager loading
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
да я-то понял, не сообразил сразу что человеку нужно, просто эту доку не найти через гугл, там документ-простыня на 25 экранов обо всем без корневых ссылок
 
Последнее редактирование:

Vano

Новичок
В общем в PHP, можна свойвсту нанзачить вызов фукнции через function __get(). А опреледять фукнцию getMessages надо, так как я и написал спс.
 

fixxxer

К.О.
Партнер клуба
Sam Dark, можно индексные страничку генерировать со ссылками на якоря. Типа sitemap-а этакого. Будет более гугл-френдли.
Сейчас действительно гуглится не то, что хотелось бы (хотя в данном случае ответ на вопрос по первой ссылке, каэш, есть, но).
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
grigori, думаешь лучше раздробить гайд?
лучше ли мелкие страницы чем простыня с голоссарием - не уверен, но обычно разделяют по страницам,

если это простыня - голоссарий слева и шоткаты вверху бесценны при поиске конкретной темы
 
Последнее редактирование:

Dez

Новичок
Вопрос: все сообщения пользователя вынимаються из БД уже при первом запросе Users::findOne(1); ?
Нет.
Достанутся при вызове $User->messages. И сохранятся внутри, т.е. при следующем $User->messages запроса к бд не будет.
 
Сверху