Php Kohana 3-如何将默认路由传递参数设置为控制器';什么行动?

Php Kohana 3-如何将默认路由传递参数设置为控制器';什么行动?,php,kohana,kohana-3,Php,Kohana,Kohana 3,我的控制器操作需要一个参数,但我无法让KO3的路由器在默认路由中传递此参数。这种方法适用于其他路线。这里有一个例子来说明 在bootstrap.php中 Route::set('default', '(<controller>(/<action>(/<the_required_param>)))') ->defaults(array( 'controller' => 'DefaultController', 'action' =&

我的控制器操作需要一个参数,但我无法让KO3的路由器在默认路由中传递此参数。这种方法适用于其他路线。这里有一个例子来说明

在bootstrap.php中

Route::set('default', '(<controller>(/<action>(/<the_required_param>)))')
 ->defaults(array(
  'controller' => 'DefaultController',
  'action'     => 'index',
  'the_required_param' => 'some_default_value',
 ));

问题是由贪婪路由(将匹配任何uri)引起的,因此路由器从未到达默认路由。下面是一个例子供参考

// The parenthesis caused this route to match any uri
Route::set('route-4-params', '(<controller>/<action>/<p1>/<p2>/<p3>/<p4>)');

Route::set('default', '(<controller>(/<action>))')
    ->defaults(array(
        'controller' => 'default_controller',
        'action'     => 'index',
        'the_required_param'     => 'somevalue',
    ));
//括号导致此路由与任何uri匹配
Route::set('Route-4-params','(//);
路由::set('默认','((/)'))
->默认值(数组)(
“控制器”=>“默认控制器”,
“操作”=>“索引”,
'the_required_param'=>'somevalue',
));

获取指定参数的另一种方法是:

$this->request->param('the_required_param');

您还应确保按顺序定义路由,并确保它与预期的路由匹配。

DefaultController
应为
Controller\u Default
,function
index
应为
action\u index
@dusan thx,以便在示例中指出该错误。这个问题是由贪婪路由(将匹配任何uri)引起的,因此路由器从未到达默认路由。我曾经有过同样的“贪婪路由”问题,我花了很长时间才找到原因!
$this->request->param('the_required_param');