扫码关注官方订阅号
Laravel匹配路由的模式是domain.com/parameter/something/another_parameter/something,这样可以指定匹配Controller的一个方法。那么domain.com/index?parameter=somgthing匹配一个方法,domain.com/index?another_parameter=something匹配另一个方法,有办法可以办到吗?
domain.com/parameter/something/another_parameter/something
domain.com/index?parameter=somgthing
domain.com/index?another_parameter=something
学习是最好的投资!
不能,而且没有理由这么做。如果你的参数是有规律的,用斜杠分割。如果参数没规律只能用 ? 这种查询参数的话,那就给上级定义路由,再在那个方法里 if ($request['foo'] == 'bar') { return $this->barAction($request); } 。没有规律的参数也没发做路由缓存。或者定义一个middleware,专门处理参数然后执行方法调用。但这样的话又基本是放弃使用了 Laravel 的路由功能。所以没有理由这么做。
?
if ($request['foo'] == 'bar') { return $this->barAction($request); }
再比如,5.2之前可以在controller里根据方法名自动匹配路由,因为诸多缺点,5.2之后就废弃了这种路由定义方式。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
不能,而且没有理由这么做。
如果你的参数是有规律的,用斜杠分割。
如果参数没规律只能用
?这种查询参数的话,那就给上级定义路由,再在那个方法里if ($request['foo'] == 'bar') { return $this->barAction($request); }。没有规律的参数也没发做路由缓存。或者定义一个middleware,专门处理参数然后执行方法调用。但这样的话又基本是放弃使用了 Laravel 的路由功能。
所以没有理由这么做。
再比如,5.2之前可以在controller里根据方法名自动匹配路由,因为诸多缺点,5.2之后就废弃了这种路由定义方式。