有什么方法可以默认路由使用action_index而不必在网址中指定它?
即。
Route::set('user_profile','(<controller>(/<action>(/<id>)))')
->defaults(array(
'directory' => 'public',
'controller' => 'user',
'action' => 'index',
));
要使用它,我需要指定/users/index/1234
但我想使用/users/1234
我尝试从Route :: set()中取出动作,但最终得到了404页。
更新
现在我已经添加了这条路线(最上面的路线),我的默认路线现在似乎不起作用
Route::set('user_profile','(<controller>(/<id>))')
->defaults(array(
'directory' => 'public',
'controller' => 'users', // Note I changed it to plural to match 'users/*' from your url
'action' => 'index',
));
Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'directory' => 'public',
'controller' => 'home',
'action' => 'index',
));
答案 0 :(得分:2)
就像从URL中省略<action>
param一样简单,但仍保留默认值:
Route::set('user_profile','(<controller>(/<id>))')
->defaults(array(
'directory' => 'public',
'controller' => 'users', // Note I changed it to plural to match 'users/*' from your url
'action' => 'index',
));
请注意,除非您有其他路由覆盖此行为,否则您的user
控制器将只能执行index
操作。
修改强>
如果您的users_profile
路线只处理/users
路径,那么您可以明确地在路线中设置它:
Route::set('user_profile','users(/<id>)')
->defaults(array(
'directory' => 'public',
'controller' => 'users', // Note I changed it to plural to match 'users/*' from your url
'action' => 'index',
));
这应解决相互冲突的路线。