2015-11-05 39 views
0

這應該很簡單,但由於某種原因,我無法獲得預期的響應。我有一個模型(App\Product),它擁有許多權限(App\ProductPermission),我的目標是檢查產品是否擁有由文本字符串描述的特定權限。我可以訪問這些好像..在Eloquent Laravel5中搜索關係集合中的屬性值

\App\Product::find($id)->permissions 

這將按預期給我的ProductPermission對象的集合。 ProductPermission模型的其中一個屬性是「權限」,即文本字符串。例如「用戶*」。

我希望能夠做同樣的事情到這個

\App\Product::find(3)->permissions->search($permission) //$permission = "users*" 

但是,儘管與現有的屬性permission=users*一個ProductPermission對象這個返回false。如何搜索關係集合中所有對象的屬性(或特定屬性)?

在此先感謝..

回答

1

這工作...

\App\Product::find($id)->permissions->where('permission',$permission)->count(); 

但它不是漂亮

0

您可以使用whereHas喜歡如下:

$productsWithPermissionsCount = Product::whereHas('permissions', function ($query) { 
    $query->where('permission', '=', $permission); 
})->count(); 
+0

感謝輸入,但我不知道如何增加任何東西..除了一點複雜 –