【发布时间】:2017-12-28 20:30:39
【问题描述】:
我有下一个结构:
模型调用内容
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 中进行正常查询,我可以找出电影存在学分。
我已从其他论坛和 stackoverflow 帖子中提取了此代码。
【问题讨论】:
-
DB 中似乎没有
content和id = $id_content。 -
这是因为我打印了 $id_content 我在数据库中手动搜索它并返回给我电影
-
将此代码放在查询
dd($this->content::find($id_content));之前。输出是什么? -
这是多对多的关系吗?我认为你的模型关系是错误的
-
我已经解决了这个问题,我很弱智。 $id_content 不是整数,是先前查询的对象。因此,如果我将查询更改为
$id_content->id,我的问题就解决了。对不起
标签: php laravel slim laravel-eloquent