这看起来真的很基本,但我不能得到它的窍门。
我尝试向控制器中的一个方法发送多个参数,如下所示:
http://localhost/ci/index.php/subjects/3/state
这是我试过的路线:
$route['subjects/(:num)'] = 'subjects/view/$1';
$route['subjects/(:num)/{:any}'] = 'subjects/view/$1/$2';
该方法接受2个参数:
public function view($slug, $id = null){
}
但是我似乎得到了一个404。我如何让这个工作?我需要视图方法总是接受1个参数和可选的其他参数。
注意:我将包括url帮助程序。
3条答案
按热度按时间t1rydlwq1#
您路由括号有问题,只需将其从{}更改为()括号即可
自
至
ni65a41a2#
始终维护路由规则
喜欢
始终遵循此路由模式
如果你这样加
则第一条件每次总是为真。
另请参考此链接--〉codeigniter routing rules
xqk2d5yq3#
我曾经尝试过这种URI模式
但是它不起作用...所以我用正则表达式替换了它
([a-z 0-9 -]+)
替换了(:any)
,([0-9]+)
替换了(:num)
所以它变成了
而且对我很有效:)
为了访问控制器中的变量,您可以在函数中指定任何参数。