У меня есть модель Card
, которая имеет много заметок. И у каждой заметки есть автор. Я готов нагружать индивидуальную карту в show
действий в моем CardsController
так:Laravel Eloquent: как мне реорганизовать этот нетерпеливый запрос загрузки в метод модели?
$card = $card->load(['notes' => function($query){
$query->orderBy('created_at', 'desc')->limit(8);
}, 'notes.author']);
Этот запрос работает. Я хочу сейчас реорганизовать это в модель, поэтому я могу просто позвонить $card = Card::popular()
в свой контроллер. Так добавить этот метод к моей Card
модели:
public function scopePopular()
{
$results = $this->with(['notes' => function($query){
$query->orderBy('created_at', 'desc')->limit(8);
}, 'notes.author']);
return $results;
}
Это портит все. Я начинаю получать нечитаемые ошибки шаблонов, когда ничто не должно действительно ломаться.
Что я делаю неправильно?
Что такое объект '$ results'? Это то, чего вы ожидаете? Потому что вы используете 'with' вместо' load' – Pogrindis
no - я использую это для отладки - он не возвращает ожидаемые результаты –
Также не должно быть 'public static function'? – Pogrindis