$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();
public function patrolUser()
{
return $this->belongsTo(PatrolUser::class, 'patrol_user_id');
}
У меня есть код построителя запросов, подобный приведенному выше, как бы он выглядел, если бы он был изменен на красноречивый?
вы используете модальные окна? Если вам нужно правильное решение, чем использование простого SQL, я могу предоставить его, если вы можете отредактировать свой первоначальный пост со структурой базы данных (упрощенной) и тем, как они связаны.
Я отредактировал свой пост, добавив модель






В соответствии с вашим кодом вы уже определили отношение
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();
Что вы пробовали? Придумайте несколько попыток, и если вы все еще не понимаете, мы сможем помочь на основе этого.