РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
207 of 1392 menu

Метод withMax

Метод withMax применяется к запросу Eloquent и позволяет загрузить максимальное значение указанного поля из связанной модели. Первым параметром передаётся имя отношения, вторым - имя поля, для которого нужно найти максимум. Третьим необязательным параметром можно задать псевдоним для результата.

Синтаксис

<?php Model::withMax($relation, $column, $alias); ?>

Если псевдоним не указан, используется имя отношения с суффиксом '_max'.

Пример

Давайте получим максимальный рейтинг комментариев для каждой статьи:

<?php use AppModelsArticle; $articles = Article::withMax('comments', 'rating')->get(); foreach ($articles as $article) { echo "Article ID: " . $article->id . "\n"; echo "Max rating: " . $article->comments_max_rating . "\n\n"; } ?>

Результат выполнения кода:

"Article ID: 1" "Max rating: 5" "" "Article ID: 2" "Max rating: 4" "" "Article ID: 3" "Max rating: 3"

В результате к каждой модели статьи будет добавлено свойство comments_max_rating, содержащее максимальный рейтинг комментариев.

Пример

Давайте получим максимальную цену заказов для пользователей, используя псевдоним:

<?php use AppModelsUser; $users = User::withMax('orders', 'price', 'max_order_price')->get(); foreach ($users as $user) { echo "User: " . $user->name . "\n"; echo "Max order price: " . $user->max_order_price . "\n\n"; } ?>

Результат выполнения кода:

"User: John" "Max order price: 1500" "" "User: Mary" "Max order price: 2000" "" "User: Bob" "Max order price: 800"

С помощью третьего параметра мы задали понятное имя свойства max_order_price.

Пример

Метод withMax можно использовать вместе с сортировкой:

<?php use AppModelsPost; $posts = Post::withMax('views', 'count') ->orderBy('views_max_count', 'desc') ->limit(5) ->get(); foreach ($posts as $post) { echo $post->title . " - " . $post->views_max_count . " views\n"; } ?>

Результат выполнения кода:

"Top Post - 1000 views" "Popular Article - 850 views" "Trending News - 720 views" "Featured Story - 650 views" "Regular Update - 500 views"

Здесь мы отобрали 5 постов с наибольшим максимальным количеством просмотров за день.

Смотрите также

  • метод withMin,
    который загружает минимальное значение поля из отношения
  • метод withSum,
    который загружает сумму значений поля из отношения
  • метод withAvg,
    который загружает среднее значение поля из отношения
  • метод withCount,
    который загружает количество записей в отношении
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить