我有2个表issues
和magazines
,它们的关系设置如下:
杂志型号:
public function issues()
{
return $this->hasMany('App\Issue');
}
问题模型:
public function magazine()
{
return $this->belongsTo('App\Magazine');
}
在杂志表中,我有一列
order
,其中杂志的订单号是。我需要按杂志的顺序显示每本杂志的最新一期。现在,我显示按发行日期订购的每本杂志的最新发行。
$issues = Issue::orderBy('date', 'desc')->get()->groupBy('magazine_id');
foreach ($issues->first() as $issue)
{
$images[] = $issue->image;
}
那很好。
但是有了新的查询:
$magazines = Magazine::with('issues')->orderBy('order')->get();
foreach ($magazines as $magazine)
{
$issues = $magazine->issues()->first();
$images[] = $magazine->issues()->first()->image;
}
我得到错误:
试图获取非对象的属性
最佳答案
只需检查是否发布is_null
,否则,将图像添加到$images
:
foreach ($magazines as $magazine)
{
$issue = $magazine->issues()->first();
if (!is_null($issue) {
$images[] = $issue->image;
}
}