Laravel雄辩的查询问题
问题描述:
我试图获得与图像的关系一个所有用户很多。凡在图像表列类型是等于1Laravel雄辩的查询问题
最近我创建。
User::with('Images')->has('Images')->get();
但它返回的所有图像不仅与类型1;
我也试过
$a = User::defaultImage()->get();
和用户模型DEF范围
public function scopeDefaultImage($query) {
$query->whereHas('Images', function ($query) {
$query->where('default', 1);
})->get();
return $query;
}
,但它不与图像返回关系,只有用户
答
你想修改的方式你正在使用你的with
功能。这将让这个返回的仅适用于图像将是1型
User::with(['Images' => function($q) {
$q->where('type', 1);
}])->whereHas('Images', function($q) {
$q->where('type', 1);
})->get();
的通过也加入whereHas
,这将只返回有1连接的图像类型的用户。
我也将确保在你的数据库,你确实有用户和它们所连接到的图像以1图像类型,这样你肯定知道你应该得到的一些数据传回。
添加额外的约束,你只是链子另一whereHas
User::with(['Images' => function($q) {
$q->where('type', 1);
}])->whereHas('Images', function($q) {
$q->where('type', 1);
})->whereHas('Roles', function($q) {
$q->where('id', 5);
})->get();
+0
TNX先生的工作很好,我将投票并设置为正确的,但请可以增加一个条款,我也有委托API访问表的角色,所以我有透视表。我只想要一个角色= 5的子句。我是laravel的新手帮助 –
怎么样定义你们的关系? –
OM我的用户模型我有公共函数图像(){ 回报 $这个 - >的hasMany( '应用程序\图片'); } –