我的模特中有一个关系,有外键,受保护的桌子。
这是我的模特:
Lot.php:
<?php
namespace App;
class Lot extends Model
{
protected $table = 'auct_lots_full';
protected $primaryKey = 'lot_id';
public function comments()
{
return $this->hasMany(Comment::class,'lot_id', 'lot_id');
}
}
比相关型号Comment.php:
<?php
namespace App;
class Comment extends Model
{
public function lot()
{
return $this->belongsTo(Lot::class, 'lot_id', 'lot_id');
}
}
在我看来,我试着这样做:
@foreach ($comments as $comment)
<dt>{{ $comment->lot }}</td>
@endforeach
结果如下:
{&#34; lot_id&#34;:391959148&#34;日期&#34;:&#34; 2017年5月21日&#34;&#34;公司&#34;:&#34; MITSUBISHI&#34;&#34; model_year_en&#34; 2005&#34;}
在视野中我只需要获取公司信息,我这样做:
@foreach ($comments as $comment)
<td> {{ $comment->lot->company }}</td>
@endforeach
此结果错误:
尝试获取非对象的属性
我尝试这样做:
@foreach ($comments as $comment)
<td>
@foreach($comment->lot as $lot)
{{ $lot->company }}
@endforeach
</td>
@endforeach
它也会出错:
尝试获取非对象的属性
如何让$comment->lot->company
工作?
答案 0 :(得分:1)
谢谢来自laracasts
的Snapey当你这样做时
@foreach ($comments as $comment)
<td> {{ $comment->lot->company }}</td>
@endforeach
你依赖于每一条评论都有很多,而且每一个公司都有一家公司
您可以使用它来防止空属性
@foreach ($comments as $comment)
<td> {{ $comment->lot->company or '---'}}</td>
@endforeach
然后即使批次没有公司
,循环也会继续