Show Product Name in Laravel Model Relationship

冷暖自知 提交于 2020-01-06 06:03:43

问题


Can you help me again? I have 3 tables

Product Table
id
product_name


Productquantity Table
id
item_id
price

Orders
id
req_id
quantity_id
quantity
amount

How can I get the product name in my CartView? I only have this in my code

Order Model

public function product()
    {
        return $this->belongsTO('App\Productquantity', 'item_id', 'id');
    }

My Controller

 $dataReqorder = Reqorder::where('req_id','=', $shoppingId)->with('product')->get();

My View

@foreach($dataReqorder as $order)
<tr class="item{{$order->id}}">
<td> <a href="products/{{$order->id}}" class="name">{{$order->product->prod_id}}</a> </td>
<td>{{$order->amount}}</td>
<td>{{$order->quantity}}</td>
</tr>
@endforeach

I want this {{$order->product->prod_id}} should be the name of the product instead of the product ID.. I just do not know how to do it on model and controller.. Please help


回答1:


I think you need to reorder some things

// Reorder tables and models
Table Schema and models

Product Model (Table name => 'products')
id
product_name


OrderProduct (Table name => 'order_product')
id
product_id
order_id
price
quantity_id
quantity

Order Model (Table name => 'orders')
id
req_id
amount

// Product Model
public function orders()
{
    return $this->belongsToMany('App\Order')->withPivot('price', 'quantity_id','quantity');
}
// Order Model
public function products()
{
    return $this->belongsToMany('App\Product')->withPivot('price', 'quantity_id','quantity');
}
// Controller
$dataReqorder = Order::where('req_id','=', $shoppingId)->with('products')->get();

// View 
@foreach($dataReqorder as $order)
    <tr class="item{{$order->id}}">
    @foreach($order->products as $product)
        {{$product->id}}<br>
        {{$product->pivot->price}}<br>
        {{$product->pivot->quantity_id}}<br>
        {{$product->pivot->quantity}}<br>
    @endforeach
    <td>{{$order->amount}}</td>
    <td>{{$order->quantity}}</td>
    </tr>
@endforeach

For more info I recommend you to see the documentation
https://laravel.com/docs/5.6/eloquent-relationships#many-to-many



来源:https://stackoverflow.com/questions/49269528/show-product-name-in-laravel-model-relationship

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!