@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.