如何将多个数据与它们所需的关系一起发送到视图中

How to send multiple data into view with their required relationships

我正在开发一个 Laravel 5.8 项目,它是一个在线商店。在这个项目中,我想为管理员添加“打印顺序因素”功能。

所以我做了一个这样的表格:

<form method="POST" action="{{ route('orders.newprint') }}">
    @csrf
    @forelse($orders as $order)
    <tr>
        <td><input class="form-check-input" name="orderCheck[]" type="checkbox" value="{{ $order->ord_id }}">&nbsp;</td>
        <td>{{ $order->ord_id }}</td>
        <td>{{ $order->status_label }}</td>
        <td>{{ $order->customer_name }}</td>
        <td>{{ $order->ord_total }}</td>
    </tr>
    @empty
        <td colspan="7" class="text-center">No order to show</td>
    @endforelse
</form>

所以管理员基本上可以 select 多个这样的订单:

我正在尝试将订单 ID 作为数组发送:

<input class="form-check-input" name="orderCheck[]" type="checkbox" value="{{ $order->ord_id }}">

所以在点击打印所有订单因素后,它应该会在一页上显示所有订单因素

因此,为了做到这一点,我在控制器中添加了这个方法:

public function prnpriview(Request $request)
    {
        $orders = $request->input('orderCheck');
        foreach($orders as $ord){
            $order = Order::find($ord);
            $args = [
                'order'  => $order,
                'address'  => $order->order_address->first(),
                'details'  => $order->orderDetail,
                'sendType'  => $order->productSubmit,
                'coupons'  => $this->cartController->computeDiscountForOutRequests($order->ord_object_id, $order->ord_creator_id),
                'user'      => User::query()->find($order->ord_creator_id)
            ];

        }
        return view('admin.shop.orders.newprint', $args);
    }

但是问题在于,它只发送最后一个 order 而不是全部。

用于一个订单的控制器代码工作正常。但是我需要将多个订单传递给 newprint.blade.php.

所以问题是,如何发送所有已被用户检查过的订单并发送给他们查看他们的 args 数组(必需的关系)?

非常感谢你们对此的任何想法或建议...

谢谢。


更新#1

这是我在 newprint.blade.php 的代码,它显示了打印的每个订单因素详细信息:

@foreach($args as $arg)
    <p>Order Id:
        <strong>
            {{ digits2persian($order->ord_id) }}
        </strong>
    </p>
    <p>Address:
        <strong>
            {{ $address->province_relation->prv_name }}،
            {{ $address->city_relation->cit_name }}،
            {{ $address->address }}
        </strong>
    </p>
    ...
@endforeach 

更新#2:

如果我在控制器中 return 之前 dd($args),并且如果我在视图中 {{ dd($args) }},我得到的结果是:

你很接近 :) 你需要使用 $arg 创建一个数组数组。现在,在循环中,它会在每次循环遍历数组时替换数组的值。

$args = [];
foreach($orders as $ord){
    $args[] = [
        ...
    ];
}