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

Метод withMin

Метод withMin применяется к запросу Eloquent для загрузки минимального значения указанной колонки из связанной модели. Первым параметром передаётся имя связи, вторым - имя колонки, по которой вычисляется минимум. Третий параметр - опциональное имя для результирующего поля (по умолчанию используется формат '{relation}_{column}_min').

Синтаксис

<?php Model::withMin($relation, $column, $alias = null); ?>

Пример

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

<?php namespace AppHttpControllers; use AppModelsCategory; class CategoryController extends Controller { public function index() { $categories = Category::withMin('products', 'price')->get(); foreach ($categories as $category) { echo $category->name . ': ' . $category->products_min_price; } } } ?>

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

"Electronics: 99" "Clothing: 25" "Books: 15"

Пример

Получим список пользователей с минимальным возрастом их заказов, используя псевдоним для результата:

<?php namespace AppHttpControllers; use AppModelsUser; class UserController extends Controller { public function index() { $users = User::withMin('orders', 'age', 'min_age')->get(); foreach ($users as $user) { echo $user->name . ': ' . $user->min_age; } } } ?>

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

"John: 18" "Jane: 22" "Bob: 19"

Пример

Применим метод с условием фильтрации, чтобы получить только активные посты с минимальным количеством комментариев:

<?php namespace AppHttpControllers; use AppModelsPost; class PostController extends Controller { public function index() { $posts = Post::where('status', 'published') ->withMin('comments', 'likes') ->get(); foreach ($posts as $post) { echo $post->title . ': ' . $post->comments_min_likes; } } } ?>

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

"Post 1: 5" "Post 2: 3" "Post 3: 8"

Пример

Используем метод с несколькими связями для получения минимальных значений из разных связанных моделей:

<?php namespace AppHttpControllers; use AppModelsShop; class ShopController extends Controller { public function index() { $shops = Shop::withMin('products', 'price') ->withMin('reviews', 'rating') ->get(); foreach ($shops as $shop) { echo $shop->name . ': ' . $shop->products_min_price . ', ' . $shop->reviews_min_rating; } } } ?>

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

"Store A: 10, 3.5" "Store B: 15, 4.0" "Store C: 8, 2.5"

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

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