Im совершенно новый для Laravel, и у меня есть вопрос о том, как вы должны получать модели внутри моделей в Laravel. Например, модель A содержит n-номер модели B, содержит n-число модели C. aka. модель A hasMany model B hasMany model C.Laravel попасть внутрь get
Теперь мне нужно отобразить график в HTML, который включает данные из моделей A/B/C.
Пример кода
A::all()->each(function($A)
{
foreach($A->B()->get() as $B)
{
foreach($B->C()->orderBy("id", "desc")->get() as $C)
{
foreach($C['attributes'] as $attribute)
{
//Do stuff with attributes
}
}
}
});
содержание A(), B(), C()
public function A()
{
return $this->hasMany('A');
}
Вы видите вложенные циклы Foreach, каждый из которых делает запрос. Совсем не хорошо. Вы можете получить все это в одном выражении SQL. Мой вопрос будет в два раза.
1) Производит ли каждый метод get() запрос к базе данных или они генерируются при генерации класса? Laravel автоматически кэширует результаты запроса?
2) Я даже смотрю в правильном направлении, или мой код совершенно не так?
Это место, отличный ответ! –