如何在 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();