Как изменить построитель запросов на красноречивый laravel

$regu = DB::table('patrol_transactions as a')
    ->leftJoin('patrol_users as b', 'a.patrol_user_id', 'b.id')
    ->where('client_location_id', auth::user()->client_location_id)
    ->whereBetween('a.created_at', [Carbon::now()->startOfWeek(), Carbon::now()->endOfWeek()])
    ->select('patrol_user_id', DB::raw('count(*) as total'), 'b.name as name')
    ->groupBy('patrol_user_id', 'name')
    ->get();

PatrolTansaction.php

public function patrolUser()
{
    return $this->belongsTo(PatrolUser::class, 'patrol_user_id');
}

У меня есть код построителя запросов, подобный приведенному выше, как бы он выглядел, если бы он был изменен на красноречивый?

Что вы пробовали? Придумайте несколько попыток, и если вы все еще не понимаете, мы сможем помочь на основе этого.

matiaslauriti 02.01.2023 04:45

вы используете модальные окна? Если вам нужно правильное решение, чем использование простого SQL, я могу предоставить его, если вы можете отредактировать свой первоначальный пост со структурой базы данных (упрощенной) и тем, как они связаны.

KGG 02.01.2023 05:13

Я отредактировал свой пост, добавив модель

stackover flow 02.01.2023 05:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
3
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В соответствии с вашим кодом вы уже определили отношение patrolUser(), поэтому нет необходимости использовать JOIN для его повторного слияния. Используйте with(), чтобы загрузить отношения.

$regu = PatrolTransaction::where('client_location_id', auth::user()->client_location_id)
    ->whereBetween('created_at', [Carbon::now()->startOfWeek(), Carbon::now()->endOfWeek()])
    ->with(['patrolUser:id,name'])
    ->select('patrol_user_id', DB::raw('count(*) as total'))
    ->groupBy('patrol_user_id', 'name')
    ->get();

Другие вопросы по теме