rap*_*2-h 11 php laravel laravel-5
有没有办法在路由中间添加可选参数?
示例路线:
/things/entities/
/things/1/entities/
Run Code Online (Sandbox Code Playgroud)
我试过这个,但它不起作用:
get('things/{id?}/entities', 'MyController@doSomething');
Run Code Online (Sandbox Code Playgroud)
我知道我能做到这一点......
get('things/entities', 'MyController@doSomething');
get('things/{id}/entities', 'MyController@doSomething');
Run Code Online (Sandbox Code Playgroud)
...但我的问题是: 我可以在路线中间添加可选参数吗?
不可以。可选参数需要放在路由的末尾,否则 Router 不知道如何将 URL 与路由匹配。您已经实施的是正确的做法:
get('things/entities', 'MyController@doSomething');
get('things/{id}/entities', 'MyController@doSomething');
Run Code Online (Sandbox Code Playgroud)
你可以尝试用一条路线来做:
get('things/{id}/entities', 'MyController@doSomething');
Run Code Online (Sandbox Code Playgroud)
并传递* 或 0如果你想为所有东西获取实体,但我称之为黑客。
还有一些其他的 hack 可以让您为此使用一种路线,但这会增加您的代码的复杂性,这真的不值得。
归档时间: |
|
查看次数: |
2458 次 |
最近记录: |