根据类别LARAVEL的ID显示文本

时间:2018-11-18 10:37:20

标签: php laravel-5

       @foreach($products as $product)
            <tr class="product">
            <td>{{ $product->product_name }}</td>
            <td>${{ $product->price }}</td>
            <td>{{ $product->category }}</td> 
            <td>{{ $product->product_description }}</td>
            <td><a href = 'delete/{{ $product->product_id }}'><button type="button" class="btn btn-danger">Delete</button></a></td>
      @endforeach

嗨,如何编写此代码,使得如果显示catagory_id = 1“ Sushi”,并且如果catagory_id = 2“ Drinks”。

到目前为止,显示如下: enter image description here

Database

2 个答案:

答案 0 :(得分:1)

您应该这样写

在产品模型中

public function category() 
{
   return $this->belongTo(Category::class);
}

在Ctonroller中

$products = Product::with('category')->paginate()

刀片中

@foreach($products as $product)
       <tr class="product">
       <td>{{ $product->product_name }}</td>
       <td>${{ $product->price }}</td>
       <td>{{ $product->category->name }}</td> 
       <td>{{ $product->product_description }}</td>
       <td><a href = 'delete/{{ $product->product_id }}'><button type="button" class="btn btn-danger">Delete</button></a></td>
 @endforeach

答案 1 :(得分:0)

首先,在您的问题中,需要获取所有关联的类别。 您可以通过急切加载来完成。.https://laravel.com/docs/5.7/eloquent-relationships#eager-loading 然后,您需要检查类别条件。

$products = App\PRODUCTMODELNAME::with('category')->get();
 @foreach($products as $product)
    <tr class="product">
    <td>{{ $product->product_name }}</td>
    <td>${{ $product->price }}</td>
    <td>
     @if($product->category->id  === 1)
        Sushi
     @elseif($product->category->id  === 1)
        Drinks
    </td> 
    <td>{{ $product->product_description }}</td>
    <td><a href = 'delete/{{ $product->product_id }}'><button type="button" class="btn btn-danger">Delete</button></a></td>
 @endforeach