Kohana 3路线和查询字符串

问题描述 投票:0回答:1

似乎是Kohana 3路由机制将忽略查询字符串参数的普遍共识(例如,参见this thread)。但是,这不是我在我的应用程序中看到的行为。

路线的定义如下:

Route::set('an_action', 'admin/an_action(/<id>)')
->defaults(array(
    'directory'     => 'admin',
    'controller'    => 'welcome',
    'action'        => 'an_action',
));

操作本身需要查询字符串中的“url”参数,如果没有给出,则会产生错误,表明路由成功并且操作尝试执行:

http://myapp.localhost/admin/an_action/3

ERROR: ErrorException [ 8 ]: Undefined index:  url ~ APPPATH/classes/controller/admin/welcome.php [ 37 ]

但如果我添加url查询参数,则路由完全失败:

http://myapp.localhost/admin/an_action/3?url=myapp.localhost/admin

Kohana_Request_Exception [ 0 ]: Unable to find a route to match the URI: admin/an_action/3?url=myapp.localhost/admin

为了让它更令人沮丧,这个相同的路由设置在我在同一个localhost上开发的另一个应用程序中运行得很好。想法?我的路线设置不正确吗?这可能是Kohana装置的问题吗?在此先感谢您的帮助!

php routing kohana-3
1个回答
0
投票

嘿!什么是默认目录?你能把它删除吗?

Route::set('an_action', 'admin/an_action(/<id>)')
->defaults(array(
   'controller'    => 'Admin_welcome',
   'action' => 'index'

);

那么,在这种情况下,您将拥有以下内容:

action:localhost / admin / an_action / 3打开url控制器:Controller_admin_welcome,默认操作 - action_index。

因此,如果您希望您的动作名称在您的网址中,您需要使用Kohana保留名称<action> - 我不确定名称 - 明天我会更新我的帖子。

我相信你正确设置了你的mod_rewrite和index.php文件。

这是默认控制器:

Route::set('default', '(<controller>(/<action>(/<id>)))')
    ->defaults(array(
        'controller' => 'Main',
        'action'     => 'index',
    ));
© www.soinside.com 2019 - 2024. All rights reserved.