簡體   English   中英

Kohana 3路由和查詢字符串

[英]Kohana 3 Routes & Query Strings

普遍認為Kohana 3路由機制將忽略查詢字符串參數(例如,參見此線程 )。 但是,這不是我在應用程序中看到的行為。

路線的定義如下:

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

更令人沮喪的是,這種相同的路由設置在我正在同一本地主機上開發的另一個應用程序中也能正常工作。 有想法嗎? 我的路線設置不正確嗎? Kohana安裝是否可能有問題? 在此先感謝您的幫助!

嘿! 默認目錄中的目錄是什么? 您可以刪除它嗎?

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

);

因此,在這種情況下,您將具有以下優勢:

操作:localhost / admin / an_action / 3打開url控制器:Controller_admin_welcome,默認操作為-action_index。

因此,如果您想在您的網址中添加操作名稱,則需要為該<action>使用Kohana保留名稱-我不確定該名稱-明天我將為其更新帖子。

我相信您已經正確設置了mod_rewrite和index.php文件。

這是默認控制器:

Route::set('default', '(<controller>(/<action>(/<id>)))')
    ->defaults(array(
        'controller' => 'Main',
        'action'     => 'index',
    ));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM