如何通过laravel中的join query查看路由
How to pass join query in laravel to view route
我有这条路由通过通知模型:
Route::view('masaya', 'pages.notifications-table', [
'data' => App\Notification::all()
]);
如何将此查询而不是模型传递给:
$inspect = DB::table('notifications')
->leftJoin('franchises', 'franchises.id', '=', 'notifications.franchise_id')
->leftJoin('units', 'units.id', '=', 'notifications.unit_id')
->select('franchises.id as fid', 'franchises.case_number', 'franchises.authorize_units', 'franchises.deno', 'franchises.route_name', 'franchises.expiry_date', 'franchises.date_granted', 'units.id as uid', 'units.plate_number', 'units.motor_number', 'units.chassis_number', 'units.make', 'notifications.id', 'notifications.remarks', 'notifications.created_at', 'notifications.plate_picture')
->orderBy('units.updated_at', 'desc')
->paginate(20);
如果这是您经常使用的结果集,您可以在 App\Notification
模型中使用静态方法,例如:
public static function withFranchisesAndUnits()
{
return \DB::table('notifications')
->leftJoin('franchises', 'franchises.id', '=', 'notifications.franchise_id')
->leftJoin('units', 'units.id', '=', 'notifications.unit_id')
->select('franchises.id as fid', 'franchises.case_number', 'franchises.authorize_units', 'franchises.deno', 'franchises.route_name', 'franchises.expiry_date', 'franchises.date_granted', 'units.id as uid', 'units.plate_number', 'units.motor_number', 'units.chassis_number', 'units.make', 'notifications.id', 'notifications.remarks', 'notifications.created_at', 'notifications.plate_picture')
->orderBy('units.updated_at', 'desc')
->paginate(20);
}
.. 就这样称呼它:
Route::view('masaya', 'pages.notifications-table', [
'data' => App\Notification::withFranchisesAndUnits()
]);
我有这条路由通过通知模型:
Route::view('masaya', 'pages.notifications-table', [
'data' => App\Notification::all()
]);
如何将此查询而不是模型传递给:
$inspect = DB::table('notifications')
->leftJoin('franchises', 'franchises.id', '=', 'notifications.franchise_id')
->leftJoin('units', 'units.id', '=', 'notifications.unit_id')
->select('franchises.id as fid', 'franchises.case_number', 'franchises.authorize_units', 'franchises.deno', 'franchises.route_name', 'franchises.expiry_date', 'franchises.date_granted', 'units.id as uid', 'units.plate_number', 'units.motor_number', 'units.chassis_number', 'units.make', 'notifications.id', 'notifications.remarks', 'notifications.created_at', 'notifications.plate_picture')
->orderBy('units.updated_at', 'desc')
->paginate(20);
如果这是您经常使用的结果集,您可以在 App\Notification
模型中使用静态方法,例如:
public static function withFranchisesAndUnits()
{
return \DB::table('notifications')
->leftJoin('franchises', 'franchises.id', '=', 'notifications.franchise_id')
->leftJoin('units', 'units.id', '=', 'notifications.unit_id')
->select('franchises.id as fid', 'franchises.case_number', 'franchises.authorize_units', 'franchises.deno', 'franchises.route_name', 'franchises.expiry_date', 'franchises.date_granted', 'units.id as uid', 'units.plate_number', 'units.motor_number', 'units.chassis_number', 'units.make', 'notifications.id', 'notifications.remarks', 'notifications.created_at', 'notifications.plate_picture')
->orderBy('units.updated_at', 'desc')
->paginate(20);
}
.. 就这样称呼它:
Route::view('masaya', 'pages.notifications-table', [
'data' => App\Notification::withFranchisesAndUnits()
]);