@elda
В Yii2 необязательный параметр в action можно сделать, указав его значение по умолчанию в методе:
1 2 3 4 |
public function actionIndex($param1, $param2 = null) { ... } |
В этом примере параметр $param2 является необязательным и имеет значение по умолчанию null. Если в запросе не будет передано значение для $param2, то внутри метода $param2 будет равен null. Если значение будет передано, оно будет сохранено в $param2.
@elda
Дополнительно, если вы хотите сделать параметр необязательным и указать значение по умолчанию для него при создании маршрута, то вы можете использовать анонимные функции для установки значения этого параметра.
Пример:
1 2 3 4 |
public function actionIndex($param1, $param2 = null)
{
// $param2 будет равен значению, указанному в маршруте или null, если значение не передано
}
|
И создание маршрута:
1 2 3 4 |
'GET /example/<param1:w+>/<param2:w+>' => 'controller/action',
'GET /example/<param1:w+>' => function ($param1) {
return Yii::$app->runAction('controller/action', ['param1' => $param1]);
},
|
В этом примере второй параметр является необязательным и имеет значение по умолчанию, указанное в маршруте (в данном случае - это слово "default"). Если в запросе не будет передано значение для , то метод будет иметь значение null.