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
关系方法的原因。