Laravel在JSON中获取数据时无法识别$this->id



public function other_children(){ return $this->hasMany('AppSameModel', 'parent_id', 'parent_id') ->where('id','!=', $this->id); }

当我获取数据(查询日志:... where id != ? ...,但当我像 JSON 一样以 JSON 返回它时,这不起作用return SameModel::with('other_children')->first();。查询日志:... where id is not null ...

使用->with获取数据时,它无法识别$this->id

有什么解决办法吗?

如果只有一个模型,则无需使用预先加载:

$model = SameModel::first();
$model->other_children;
return $model;

你可以像这样嵌套来做到这一点

$id = $this->id;
return SameModel::with(['other_children' => function ($query) use($id) {
$query->where('id','!=', $id);
}])->get();

在您的问题中,$this属于控制器而不是模型,这将是无法识别$this->id关系方法的原因。

最新更新