【发布时间】:2016-10-24 03:22:56
【问题描述】:
假设我在 Laravel 中有以下路线:
Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) {
//
});
假设我在以下网址:posts/3/comments/54
我可以通过访问url() 方法将url 作为字符串获取,这将返回确切的url。
就我而言,我需要别的东西。有没有办法获得路线的结构?我想做这样的事情:
if(someUrlStructureFunction() == "posts/{post}/comments/{comment}") //do something
谢谢!
【问题讨论】:
-
你想通过检查 url 结构来达到什么目的?
-
每个用户都有特定的角色。每个请求(因此 url + 请求类型)都有单独的规则,用户可以使用哪些角色访问它。例如,给定的 url 和 POST 请求只能由管理员访问。但是,例如,任何人都可以完成 url 和 GET 请求。这些东西都保存在数据库中。我们宁愿不使用控制器的动作名称来识别它,因为这很容易在代码中被意外更改而无需在数据库中更改
-
我认为您可以使用中间件来实现这一点,您可以在其中按每个用户角色过滤请求。了解更多:laravel.com/docs/5.3/middleware
-
@Derp 将其绑定到路由/URL 似乎很奇怪。你应该使用laravel.com/docs/5.3/authorization#via-controller-helpers之类的东西