【发布时间】:2010-05-13 19:20:45
【问题描述】:
我的控制器动作需要一个参数,但我无法让 KO3 的路由器在默认路由中传递此参数。这种事情适用于其他路线。这是一个澄清的例子......
在 bootstrap.php 中...
Route::set('default', '(<controller>(/<action>(/<the_required_param>)))')
->defaults(array(
'controller' => 'DefaultController',
'action' => 'index',
'the_required_param' => 'some_default_value',
));
在控制器文件中...
class Controller_DefaultController extends Controller
{
public function action_index($the_required_param)
{
echo 'value: ' . $the_required_param;
}
}
【问题讨论】:
-
DefaultController应该是Controller_Default并且函数index应该是action_index。 -
@dusan thx,指出示例中的错误。问题是由贪婪路由引起的(将匹配任何 uri),因此路由器从未到达默认路由。
-
我曾经遇到过同样的“贪婪路线”问题,我花了很长时间才找到原因!