我有这个模型文件:-
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性()
以下行不正确:
return $this->report_facility()->facility
您正在启动一个查询,调用report_facility
作为函数(report_facility()
),返回一个查询生成器对象,其中设施
函数未知。
你应该做:
return $this->report_facility->facility
在本例中,eloquent将为您提供ReportFacility模型,您可以从中检索facility属性或关系。
它类似于:
return $this->report_facility()->first()->facility