我实施了角色/权限系统。现在我想为Laravel路由器添加一个方法,这样我就可以做到这样的事情:
Route::get('sales', 'SaleController@index')->allow('Salesman');
我知道我可以使用@can('Salesman')
(查看)和$user->can('Salesman')
(控制器),但我发现我的方式非常可读我试图这样做,因为我将能够在路径文件中看到所有角色权限访问。
答案 0 :(得分:1)
您可以覆盖路由器类,然后将其注册到服务容器中以供Route
外观使用。
更清楚:
Router
类)。要找到它,请打开Route
外观,然后找到其服务提供商。从那里,应该很容易找到路由器类。Route
facade。中找到的相同密钥名称注册您的服务。那应该是它。您的服务现在由Route
外观自动选择。
答案 1 :(得分:0)
当您使用立面来生成路线时。这应该很容易。可以在SELECT FamID,
ISNULL(MaleName+' ','') +
CASE WHEN MaleName IS NULL OR FemaleName IS NULL THEN '' ELSE 'and ' END+
ISNULL(FemaleName,'') AS FirstName,
LName
FROM #Temp
facades
数组中推翻外观。
您可以生成自己的Facade class并替换原有的Router class。实际上这是一个Route。为了实现您需要按顺序扩展和覆盖以下内容的功能:
通过扩展最后一个并在路由器的config/app.php
方法中返回它们,您将能够否决Laravel的逻辑。