如何解决Laravel Eloquent 在结果中附加非关系船舶数据
我有这个模型文件:-
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 模型数组,但出现错误:-
调用未定义的方法 Illuminate\Database\Eloquent\Relations\BelongsTo::facility()
解决方法
以下行不正确:
return $this->report_facility()->facility
您正在启动查询,将 report_facility
作为函数 (report_facility()
) 调用,返回一个查询构建器对象,facility
函数在该对象上未知。
你应该这样做:
return $this->report_facility->facility
在这种情况下,eloquent 将为您提供 ReportFacility 模型,您可以从中检索设施属性或关系。
类似于:
return $this->report_facility()->first()->facility
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。