【发布时间】:2017-05-24 14:51:24
【问题描述】:
我有 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;
}
我得到错误:
试图获取非对象的属性
【问题讨论】:
-
在执行
$magazine->issues()->first()->image之前检查$magazine->issues()->first()没有返回null
标签: php mysql eloquent laravel-5.3