Кохана 3 - Как мне сделать так, чтобы Маршрут по умолчанию передавал аргументы в Действие Контроллера? - PullRequest
0 голосов
/ 13 мая 2010

Для действия моего контроллера требуется параметр, но я не могу заставить маршрутизатор 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;
    }
}

Ответы [ 2 ]

1 голос
/ 17 мая 2010

Другой способ получить указанный параметр:

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

Вы также должны убедиться, что вы определили маршруты по порядку и убедитесь, что они соответствуют тому, что должны.

0 голосов
/ 13 мая 2010

Проблема была вызвана жадным маршрутом (будет соответствовать любому 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',
    ));
...