Laravel - 按关系排序 table

Laravel - order by relationship table

我有 2 tables issuesmagazines,他们之间的关系是这样的:

杂志型号:

 public function issues()
 {
     return $this->hasMany('App\Issue');
 }

问题模型:

public function magazine()
{
    return $this->belongsTo('App\Magazine');
}

在杂志 table 中,有一列 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;
        }

我收到错误:

Trying to get property of non-object

检查是否有问题 is_null,如果没有,将图像添加到 $images:

    foreach ($magazines as $magazine)
    {
        $issue = $magazine->issues()->first();
        if (!is_null($issue) {
            $images[] = $issue->image;
        }
    }