我的控制器操作需要一个参数,但我无法让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;
}
}
答案 0 :(得分:1)
获取指定参数的另一种方法是:
$this->request->param('the_required_param');
您还应确保按顺序定义路线并确保其符合预期。
答案 1 :(得分:0)
问题是由贪婪路线引起的(会匹配任何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',
));