Eloquent laravel --> 预先加载
Eloquent laravel --> Eager Loading
我有下一个结构:
模型调用内容
public function credits(){
return $this->belongsToMany('App\models\Credit');
}
模型调用学分
public function content()
{
return $this->belongsToMany('App\models\Content');
}
我想做的是提取一个内容的所有学分,但只选择我想要的列,使用以下代码:
$credits2=$this->content::with(array('credits'=>function($query){
$query->select('id','department','job');
}))->where('id',$id_content)->get();
我遇到的问题是,当我执行所有代码时,结果是:
[]
但如果我在 mysql 中进行正常查询,我可以找出电影存在的演职员表。
我已经从其他论坛和 Whosebug 中提取了这段代码 post。
还有另一种不使用闭包指定列的简单方法:
$credits2 = $this->content::with('credits:credits.id,department,job')
->find($id_content->id);
问题是 $id_content 是先前查询的结果,所以如果我输入 $id_content 不起作用,我必须访问该列。
解决方案是:
$credits2=$this->content::with(array('credits'=>function($query){
$query->select('id','department','job');
}))->where('id',$id_content)->get();
我有下一个结构:
模型调用内容
public function credits(){
return $this->belongsToMany('App\models\Credit');
}
模型调用学分
public function content()
{
return $this->belongsToMany('App\models\Content');
}
我想做的是提取一个内容的所有学分,但只选择我想要的列,使用以下代码:
$credits2=$this->content::with(array('credits'=>function($query){
$query->select('id','department','job');
}))->where('id',$id_content)->get();
我遇到的问题是,当我执行所有代码时,结果是:
[]
但如果我在 mysql 中进行正常查询,我可以找出电影存在的演职员表。
我已经从其他论坛和 Whosebug 中提取了这段代码 post。
还有另一种不使用闭包指定列的简单方法:
$credits2 = $this->content::with('credits:credits.id,department,job')
->find($id_content->id);
问题是 $id_content 是先前查询的结果,所以如果我输入 $id_content 不起作用,我必须访问该列。
解决方案是:
$credits2=$this->content::with(array('credits'=>function($query){
$query->select('id','department','job');
}))->where('id',$id_content)->get();