#php #laravel #laravel-5 #laravel-5.8
#php #laravel #laravel-5 #laravel-5.8
Вопрос:
У меня есть вопрос, касающийся запроса модели eloquent с использованием пользовательского атрибута.
У меня есть класс / модель Item
, и я создал атрибут:
function getWeeklySalesCountAttribute()
{
return rand(3, 1000); //real logic is in db
}
Итак, в моем контроллере я хочу сначала выбрать товары с самыми высокими еженедельными продажами и разбить их на страницы
$items = Item::where(function($item){
//find the items with highest weekly sales
})->paginate(10);
Как мне добиться этого, учитывая, что мне удается извлечь $item->weekly_sales_count
атрибут
Комментарии:
1. Хотя я не уверен. но пока я думаю, является ли класс ‘item’ вашим классом eloquent или обычными классами?
2. Это класс Eloquent (модель)
Ответ №1:
Вы не можете использовать Eloquent, вам нужно использовать фильтр.
$result = Model::get()->filter(function($item) {
return $item->weekly_sales_count > 3;
});
Комментарии:
1. спасибо, позвольте мне попробовать, но задача состоит в том, чтобы отфильтровать те, у которых самые высокие продажи, и разбить их на страницы, так каков правильный способ использования фильтра. Если вы можете связать меня с тем, где
filter
объясняется, я буду очень рад