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

时间:2018-08-17 12:39:13

标签: php laravel-5 eloquent

function myWhen(dynamicList) { const promises = dynamicList.map(item => new Promise( function(resolve,reject) { $.when(item).done(data => resolve(data)); } ) ); return Promise.all(promises); } const MyDynamicList = [$.ajax( "foo" ) , $.ajax( "bar.aspx" ) ...]; myWhen(MyDynamicList).then( items => { //do stuff } ).catch(err => { //handle error })

这在我获取数据时有效(查询日志:public function other_children(){ return $this->hasMany('App\SameModel', 'parent_id', 'parent_id') ->where('id','!=', $this->id); },但是当我以... where id != ? ...之类的JSON返回数据时却不起作用。查询日志:return SameModel::with('other_children')->first();

使用... where id is not null ...获取数据时无法识别$this->id

有解决方案吗?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您可以像这样嵌套进行

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

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