0

有什么方法可以默认使用 action_index 而不必在 url 中指定它?

IE。

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',
    ));
4

1 回答 1

2

就像从 URL中省略<action>参数一样简单,但仍保持默认值:

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 覆盖此行为,否则您的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',
    ));

这应该解决冲突的路线。

于 2013-04-21T08:10:15.423 回答