0

コントローラー アクションにはパラメーターが必要ですが、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;
    }
}
4

2 に答える 2

1

指定されたパラメーターを取得する別の方法は次のとおりです。

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

また、ルートを順番に定義し、それが想定されているものと一致することを確認する必要があります。

于 2010-05-16T21:35:18.060 に答える
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',
    ));
于 2010-05-13T19:53:45.473 に答える