提问者:小点点

Laravel雄辩的附加非关系船舶数据与结果


我有这个模型文件:-

    namespace App;
    
    use Illuminate\Database\Eloquent\Model;
    
    class Observation extends Model
    {
        protected $fillable = ['observation', 'recommendation', 'priority', 'report_asset_id'];
        protected $appends = ['facility'];
    
        public function attachments()
        {
            return $this->hasMany('App\ObservationAttachment');
        }
    
        public function report_facility()
        {
            return $this->belongsTo('App\ReportFacility');
        }
    
        public function getFacilityAttribute()
        {
            return $this->report_facility()->facility;
        }
  
}

这是我的查询代码:-

$observations = Observation::orderBy('created_at','desc')
       ->with('attachments')->get(); 

       return response()->json($observations);

我正在尝试附加getFacilityAttribute以包含在结果数组中。

我试图使用受保护的$append模型数组,但得到错误:-

调用未定义的方法照亮\数据库\雄辩\关系\属于::fac性()


共1个答案

匿名用户

以下行不正确:

return $this->report_facility()->facility

您正在启动一个查询,调用report_facility作为函数(report_facility()),返回一个查询生成器对象,其中设施函数未知。

你应该做:

return $this->report_facility->facility

在本例中,eloquent将为您提供ReportFacility模型,您可以从中检索facility属性或关系。

它类似于:

return $this->report_facility()->first()->facility