我想从另一个具有相同product_id laravel的表中显示product_name

时间:2019-01-18 13:20:29

标签: laravel

控制器:

public function OrderHistory(){

    $user_id = Auth::User()->id;
    $orders = Order::with('ordersz')->where('user_id',$user_id)->get();
    return view('users.order_history')->with(compact('orders'));
}
  

刀片页面:

<table id="example" class="table table-striped table-bordered" style="width:100%;">
    <thead>
        <tr>
            <th>Order ID</th>
            {{--<th>Quantity</th>--}}
            <th>Ordered Products</th>
            <th> Quantity</th>
            <th>Total</th>
            <th>Order Date</th>
            <th>Actions</th>
        </tr>
    </thead>
    <tbody>
        @foreach($orders as $order)
            <tr>
                <td>{{$order->id}}</td>
                <td>
                    {{--@foreach($userCart as $cart)--}}
                        {{--{{$cart->product_name}}<br>--}}
                    {{--@endforeach--}}

                    @foreach($order->ordersz as $pro)
                        {{$pro->product_id}}<br>// here im displaying the product_id but i want the product name
                    @endforeach
                </td>
                <td>
                    {{--@foreach($userCart as $cart)--}}
                    {{--{{$cart->product_name}}<br>--}}
                    {{--@endforeach--}}

                    @foreach($order->ordersz as $pro)
                        {{$pro->quantity}}<br>
                    @endforeach
                </td>
                <td> {{$order->total_amount}}</td>
                <td> {{$order->created_at}}</td>
                <td>View Details</td>

            </tr>
        @endforeach
    </tbody>
</table>
  

我正在通过用户ID获取订单历史记录,并且正在显示   order_product表中的product_id,现在我要显示   产品表中的product_name,我具有product_id的外键

2 个答案:

答案 0 :(得分:0)

请确保在您的 Order 模型中定义所需的relationships

function product() {
    return $this->hasOne('App\Product');
}

很明显,这意味着您有一个产品模型,应该拥有。

然后,由于具有动态属性,您可以在视图中检索如下产品:

$pro->product->name;

答案 1 :(得分:0)

如果您在Orderz上有一个称为product的关系,则它非常简单。

在急切加载orderz的地方,您想要添加产品,如下所示:

$orders = Order::with('ordersz.product')->where('user_id',$user_id)->get();

,然后在带有注释的行中的刀片中,您只需执行以下操作:

{{$pro->product->name}}<br>