2015-02-17 5 views
2

Хорошо, я перехожу из приложения с yii 1.1 в yii 2, к сожалению, я не могу понять, как использовать дополнительные параметры в моих маршрутах. Даже когда я устанавливаю значения по умолчанию в urlmanager в config, я не могу указать второй параметр без первого, или я получаю ошибку 404.Yii 2 Необязательный параметр

Есть ли способ, чтобы скопировать дополнительные правила параметров URL, такие как

array('<controller:\w+>/<action:\w+>?(/<status>)?', 
'pattern' => '<controller>/<action>'     
), 

в Yii 2?

+0

Пл. см. это: http://stackoverflow.com/a/25746684/4819200 –

ответ

3

Это не очень понятно, в документации (см http://www.yiiframework.com/doc-2.0/guide-runtime-routing.html), но вот ответ:

По умолчанию все параметры, объявленные в правиле не требуется. Если запрошенный URL-адрес не содержит конкретного параметра или если URL-адрес создается без определенного параметра, это правило не будет применяться. Чтобы сделать некоторые из параметров необязательными, вы можете настроить свойство правила. Параметры, перечисленные в этом свойстве, являются необязательными и будут принимать указанные значения, если они не указаны.

Таким образом, ваш маршрут должен быть выражен как:

array(
    'pattern' => '<controller:\w+>/<action:\w+>/<status>', 
    'route' => '<controller>/<action>', 
    'defaults' => array('status' => '<a default value for status>') 
) 
+0

Я понял, что значения по умолчанию должны быть установлены, поэтому, если значение не было установлено, значение по умолчанию появляется в URL-адресе. На мой взгляд, это не самый удобный способ работы, но он работает, поэтому я буду работать с ним. Еще раз спасибо. – mezlad

+0

Pl. см. это http://stackoverflow.com/a/25746684/4819200 –

Смежные вопросы