这应该很简单但由于某种原因我无法获得预期的响应。我有一个具有许多权限(App\Product
)的模型(App\ProductPermission
),我的目标是检查产品是否包含文本字符串描述的特定权限。我可以访问这些罚款..
\App\Product::find($id)->permissions
这将为我提供所需的ProductPermission对象集合。 ProductPermission模型的一个属性是“权限”#39;这是文本字符串。例如"用户*"。
我希望能够做类似的事情
\App\Product::find(3)->permissions->search($permission) //$permission = "users*"
但是,尽管存在属性permission=users*
的ProductPermission对象,但这会返回false。如何搜索关系集合中所有对象的属性(或特定属性)?
提前致谢..
答案 0 :(得分:2)
这有效......
\App\Product::find($id)->permissions->where('permission',$permission)->count();
但它不那么漂亮
答案 1 :(得分:0)
您可以使用whereHas
,如下所示:
$productsWithPermissionsCount = Product::whereHas('permissions', function ($query) {
$query->where('permission', '=', $permission);
})->count();