Laravel 如何从表中打印数据
1) 这是我的订单表:Laravel 如何从表中打印数据,laravel,laravel-5,Laravel,Laravel 5,1) 这是我的订单表: Schema::create('orders', function (Blueprint $table) { $table->increments('id'); $table->integer('user_id')->unsigned(); $table->integer('category_id')->unsigned(); $table->integer('produc
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');
});
2) 这是我订购的刀片:
<tbody>
@foreach($orders as $order)
<tr>
<td>{{$order->variant_name}}</td>
<td>{{$order->quantity}}</td>
<td>{{$order->total}}/-</td>
</tr>
@endforeach
</tbody>
现在我想在我的刀片文件中打印变体名称,但我唯一能打印的是id。我试过很多方法,但仍然得不到确切的答案。我知道可以用外键完成,但如何使用这些外键打印变量名称或变量表中的任何内容。您可以:
刀片
<tbody>
@foreach($orders as $order)
<tr>
<td>{{$order->variants->variant_name}}</td>
<td>{{$order->quantity}}</td>
<td>{{$order->total}}/-</td>
</tr>
@endforeach
</tbody>
订单模式
public function variants(){
return $this->belongsTo(Variant::class, 'variant_id');
}
public function getList()
{
return self::with('variants')->where('user_id', auth()->user()->id)->get();
}
你可以:
刀片
<tbody>
@foreach($orders as $order)
<tr>
<td>{{$order->variants->variant_name}}</td>
<td>{{$order->quantity}}</td>
<td>{{$order->total}}/-</td>
</tr>
@endforeach
</tbody>
订单模式
public function variants(){
return $this->belongsTo(Variant::class, 'variant_id');
}
public function getList()
{
return self::with('variants')->where('user_id', auth()->user()->id)->get();
}
请注意,每个
订单
都属于一个变体
。因此,在您的订单
模型中,在订单
模型和变体
模型之间创建如下关系:
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>
@foreach($orders作为$order)
{{$order->variants()->first()->variant_name}
{{$order->quantity}
{{$order->total}/-
@endforeach
这应该可以解决问题。请注意,每个
订单都属于一个变体。因此,在您的订单
模型中,在订单
模型和变体
模型之间创建如下关系:
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>
@foreach($orders作为$order)
{{$order->variants()->first()->variant_name}
{{$order->quantity}
{{$order->total}/-
@endforeach
这应该可以解决问题。不,不起作用。错误:“正在尝试获取非对象的属性”。调用模型[App\Models\Order]上的未定义关系[variants]。感谢慷慨的人员,这次成功了。不,没用。错误:“正在尝试获取非对象的属性”。调用模型[App\Models\Order]上的未定义关系[variants]。感谢慷慨的人员,这次成功了。语法错误“,”意外返回读取并理解Laravel关系语法错误“,”意外返回读取并理解Laravel关系