所以在Laravel 5中有一个方便的东西叫JSON Where Clauses使用MySQL的新功能来存储和获取存储在列中的JSON:
User::where('meta->colors', 'red')->get()
Run Code Online (Sandbox Code Playgroud)
将返回所有行,colors列中的位置meta将设置为red.
现在假设colors不是字符串,而是包含多种颜色的数组(colors => ['red', 'blue', 'green']).
什么是检索所有行的有效方法,其中colors包含例如值red?
我有一个CRUD资源定义通过Route::resource('User', 'UserController').
既然可以生成CRUD门和策略,是否有办法应用这样的门/策略,以便相应的门/策略应用于特定路由?
我认为这将是一种优雅的方式,因为我的政策会匹配我的路线.我正在寻找像applyPolicy或simliar这样的方法:
Route::resource('User', 'UserController')->applyPolicy()
否则我将不得不为每个动作添加每个策略,这看起来并不那么优雅.
有一种authorizeResource()将特定策略应用于所有路由(索引路由除外)的方法。有没有办法只在特定路由上应用策略,类似于这个功能:
Route::resource('photo', 'PhotoController', ['only' => [
'index', 'show'
]]);
Run Code Online (Sandbox Code Playgroud)