Как написать нормальные SQL-запросы внутри контроллера в Laravel - PullRequest
1 голос
/ 11 июня 2019

Я хочу знать, как записать обычные SQL-запросы внутри контроллера laravel?

SELECT 

       vd.photo,
       CONCAT(vd.firstName," ",vd.lastName) as FullName,
       v.photo,
       v.vehicleModel,
       sr.tripType,
       sr.schoolTime,
       GROUP_CONCAT( rs.schoolName SEPARATOR ' ') as School_Name,
       GROUP_CONCAT( cp.checkPoint SEPARATOR ' ') as CheckPoints

FROM 

     vehicles v,
     school_van_routes sr,
     routes_schools rs,
     school_route_check_points cp,
     van_drivers vd,
     van_owners vo

WHERE

      v.numberPlate=sr.selectVehicle 
      AND sr.id=rs.routeId 
      AND sr.id= cp.routeId
      AND v.vanOwnerEmail=vo.email 
      AND vo.email =vd.email

GROUP BY v.id

Ответы [ 2 ]

3 голосов
/ 11 июня 2019

Добро пожаловать в StackOverflow.

Если вы хотите выполнять сырой SQL вместо использования построителя запросов, вы можете попробовать:

$results = DB::select("SELECT * ..")

Подробнее здесь: https://laravel.com/docs/5.8/database#running-queries

0 голосов
/ 11 июня 2019

Вот как вы можете конвертировать SQL-запрос.

$result = DB::table(DB::raw('vehicles v, school_van_routes sr, routes_schools rs, school_route_check_points cp, van_drivers vd, van_owners vo')) 
        ->select(DB::raw("vd.photo, CONCAT(vd.firstName,' ',vd.lastName) as FullName, v.photo, v.vehicleModel, sr.tripType, sr.schoolTime, GROUP_CONCAT( rs.schoolName SEPARATOR ' ') as School_Name, GROUP_CONCAT( cp.checkPoint SEPARATOR ' ') as CheckPoints"))
        ->whereRaw('v.numberPlate=sr.selectVehicle')
        ->whereRaw('sr.id=rs.routeId')
        ->whereRaw('sr.id= cp.routeId')
        ->whereRaw('v.vanOwnerEmail=vo.email')
        ->whereRaw('vo.email =vd.email')
        ->groupBy('v.id', 'v.photo', 'vd.photo', 'v.vehicleModel', 'sr.tripType', 'sr.schoolTime')
        ->get();

dd($result);


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...