我有2个表issuesmagazines,它们的关系设置如下:

杂志型号:

 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;
        }
    }

10-02 09:09