如何在 laravel blade 中显示和分页两个查询?
How can I show and pagination two queries in the laravel blade?
我想在 blade 中的 table 中显示 $personnals 和 $users。
我知道,我必须使用 @foreach。但我不能。因为,我有 两个查询,我无法分页并显示它们。
$personnals = DB::table('orders')
->where('pay_type', 1)
->leftJoin('personnels', 'orders.personnel_id', '=', 'personnels.id')
->leftJoin('users', 'personnels.user_id', '=', 'users.id')
->select(['name AS personnelName', 'lastname AS personnelLastName'])
->get();
$users = DB::table('orders')
->where('pay_type', 1)
->leftJoin('users', 'orders.user_id', '=', 'users.id')
->select(['name AS userName', 'lastname AS userLastName', 'orderCode'])
->get();
$personnals 有 100 个元素,$users 也有 100 个元素。每个元素都是一个数组。我想将这些数组合并在一起,得到一个包含 100 个数组元素的数组。
例如:我想要 $result:
$personnals = [ [ 'a'=>'blue', 'b'=>'red' ], [ 'a'=>'green', 'b'=>'black' ] ];
$users = [ [ 'c'=>'yellow', 'd'=>'orange' ], [ 'c'=>'white', 'd'=>'pink' ] ];
$result = [
[ 'a'=>'blue', 'b'=>'red', 'c'=>'yellow', 'd'=>'orange' ] ,
[ 'a'=>'green', 'b'=>'black', 'c'=>'white', 'd'=>'pink' ]
];
如何在 blade 中分页显示这些内容?
或
我可以在一个查询中显示所有内容吗?如何?
谢谢。
你可以使用union
$personnals = DB::table('orders')
->where('pay_type', 1)
->leftJoin('personnels', 'orders.personnel_id', '=', 'personnels.id')
->leftJoin('users', 'personnels.user_id', '=', 'users.id')
->select(['name', 'lastname', 'orderCode']);
$result = DB::table('orders')
->where('pay_type', 1)
->leftJoin('users', 'orders.user_id', '=', 'users.id')
->select(['name', 'lastname', 'orderCode'])
->union($personnals)
->get();
试试上面的!
因为您只需要 100 个结果而不是 200 个,所以您期望 join
而不是 union
$result = DB::table('orders')
->where('pay_type', 1)
->leftJoin('personnels', 'orders.personnel_id', '=', 'personnels.id')
->leftJoin('users AS u1', 'personnels.user_id', '=', 'u1.id')
->leftJoin('users AS u2', 'orders.user_id', '=', 'u2.id')
->select(['u2.name AS userName', 'u2.lastname AS userLastName', 'orderCode', 'u1.name AS personnelName', 'u1.lastname AS personnelLastName'])
->get();
我想在 blade 中的 table 中显示 $personnals 和 $users。 我知道,我必须使用 @foreach。但我不能。因为,我有 两个查询,我无法分页并显示它们。
$personnals = DB::table('orders')
->where('pay_type', 1)
->leftJoin('personnels', 'orders.personnel_id', '=', 'personnels.id')
->leftJoin('users', 'personnels.user_id', '=', 'users.id')
->select(['name AS personnelName', 'lastname AS personnelLastName'])
->get();
$users = DB::table('orders')
->where('pay_type', 1)
->leftJoin('users', 'orders.user_id', '=', 'users.id')
->select(['name AS userName', 'lastname AS userLastName', 'orderCode'])
->get();
$personnals 有 100 个元素,$users 也有 100 个元素。每个元素都是一个数组。我想将这些数组合并在一起,得到一个包含 100 个数组元素的数组。
例如:我想要 $result:
$personnals = [ [ 'a'=>'blue', 'b'=>'red' ], [ 'a'=>'green', 'b'=>'black' ] ];
$users = [ [ 'c'=>'yellow', 'd'=>'orange' ], [ 'c'=>'white', 'd'=>'pink' ] ];
$result = [
[ 'a'=>'blue', 'b'=>'red', 'c'=>'yellow', 'd'=>'orange' ] ,
[ 'a'=>'green', 'b'=>'black', 'c'=>'white', 'd'=>'pink' ]
];
如何在 blade 中分页显示这些内容?
或
我可以在一个查询中显示所有内容吗?如何?
谢谢。
你可以使用union
$personnals = DB::table('orders')
->where('pay_type', 1)
->leftJoin('personnels', 'orders.personnel_id', '=', 'personnels.id')
->leftJoin('users', 'personnels.user_id', '=', 'users.id')
->select(['name', 'lastname', 'orderCode']);
$result = DB::table('orders')
->where('pay_type', 1)
->leftJoin('users', 'orders.user_id', '=', 'users.id')
->select(['name', 'lastname', 'orderCode'])
->union($personnals)
->get();
试试上面的!
因为您只需要 100 个结果而不是 200 个,所以您期望 join
而不是 union
$result = DB::table('orders')
->where('pay_type', 1)
->leftJoin('personnels', 'orders.personnel_id', '=', 'personnels.id')
->leftJoin('users AS u1', 'personnels.user_id', '=', 'u1.id')
->leftJoin('users AS u2', 'orders.user_id', '=', 'u2.id')
->select(['u2.name AS userName', 'u2.lastname AS userLastName', 'orderCode', 'u1.name AS personnelName', 'u1.lastname AS personnelLastName'])
->get();