如何从表格中打印数据

时间:2019-01-02 08:59:16

标签: laravel laravel-5

1)这是我的订单表:

isLazy

2)这是我的订购刀片:

Schema::create('orders', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('user_id')->unsigned();
        $table->integer('category_id')->unsigned();
        $table->integer('product_id')->unsigned();
        $table->integer('variant_id')->unsigned();
        $table->integer('quantity');
        $table->integer('total');
        $table->timestamps();
        $table->foreign('user_id')->references('id')->on('users');
        $table->foreign('category_id')->references('id')->on('categories');
        $table->foreign('product_id')->references('id')->on('products');
        $table->foreign('variant_id')->references('id')->on('variants');
    });

3)这是我的OrderController:

<tbody>

        @foreach($orders as $order)
        <tr>
        <td>{{$order->variant_name}}</td>
        <td>{{$order->quantity}}</td>
        <td>{{$order->total}}/-</td>
        </tr>
        @endforeach 
    </tbody>

现在,我想在刀片文件中打印变体名称,但是唯一可以打印的是id。我已经尝试了很多事情,但仍然无法获得确切的答案。我知道可以使用外键来完成,但是如何使用这些外键来打印variant_name或变量表中的任何内容。

2 个答案:

答案 0 :(得分:0)

您可以:

刀片

<tbody>
    @foreach($orders as $order)
    <tr>
    <td>{{$order->variants->variant_name}}</td>
    <td>{{$order->quantity}}</td>
    <td>{{$order->total}}/-</td>
    </tr>
    @endforeach 
</tbody>

OrderController

public function index(Order $order)
{
    $orders=$order->getList();
    return view('orders', compact('orders', 'variants'));
}

订单模型

public function variants(){
   return $this->belongsTo(Variant::class, 'variant_id');
}

public function getList()
{
   return self::with('variants')->where('user_id', auth()->user()->id)->get();
}

答案 1 :(得分:-1)

请注意,每order属于一个variant。因此,在您的order模型中,请在order模型和variant模型之间建立如下关系:

public function variants(){
    return $this->belongsTo(Variant::class,'variant_id','id');
}

现在已经建立了关系,只要有Order类的对象,就可以使用它。让我们在循环中使用它:

<tbody>
    @foreach($orders as $order)
        <tr>
            <td>{{$order->variants()->first()->variant_name}}</td>
            <td>{{$order->quantity}}</td>
            <td>{{$order->total}}/-</td>
        </tr>
    @endforeach 
</tbody>

应该可以解决问题。