2013-03-28 22 views
0

Когда я создаю этот методYii контроллер Параметры

actionTest($parameter){ 
    print($parameter); 
} 

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

Как можно настроить Yii так, что если Я ввожу: /controller/test/text он просто распечатывал строку «текст» на экране вместо того, чтобы возвращать неверную ошибку запроса?

Я уже проверял правильность URL. Если я напишу

actionTest(){ 
    print('text'); 
} 

, а затем перейдите в/controller/test/text, тогда он работает нормально.

Как настроить yii так, чтобы действие контроллера могло принимать значения параметров в URL-адресе?

+0

вы потеряли чувак –

ответ

3

Вы должны отредактировать urlManager правила перезаписи массива в вашем config.php включить

'urlManager'=>array(
    .... 
    'rules'=>array(
     'controller/test/<parameter:\w+>' => 'controller/test', 
     ... 
    ), 
), 

с вашей функции контроллера, как

actionTest($parameter){ 
    print($parameter); 
} 
+0

Это не сработало. Есть ли что-то, что я могу сделать, чтобы добавить эту функцию к любому контроллеру с параметрами? –

+0

Спасибо. Это помогло !!! '<контроллер: \ w +>//' => '/' –

0

Попробуйте URL: /controller/test/parameter/text, он должен работать. Рекомендуемое правило URL-адреса @topher также верно.

1

@curtis: Thanks. Это помогло !!! <controller:\w+>/<action:\w+>/<id:\w+>'=>'<controller>/<action> - Curtis Colly 31 марта '13 в 3:27

Правило <controller:\w+>/<action:\w+>/<id:\w+>'=>'<controller>/<action> линия будет посылать последний параметр на контроллер, как $id если вы хотите использовать $ параметр, который вы должны изменить идентификатор параметра.

<controller:\w+>/<action:\w+>/<parameter:\w+>'=>'<controller>/<action> 

В контроллере вы можете также ввести

actionTest(){ 
    print($_GET['parameter']); //or $_REQUEST 
} 
Смежные вопросы