Как сделать необязательный параметр в action на yii 2?

Пользователь

от elda , в категории: PHP , год назад

Как сделать необязательный параметр в action на yii 2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от shirley.vonrueden , год назад

@elda 

В Yii2 необязательный параметр в action можно сделать, указав его значение по умолчанию в методе:

1
2
3
4
public function actionIndex($param1, $param2 = null)
{
    ...
}


В этом примере параметр $param2 является необязательным и имеет значение по умолчанию null. Если в запросе не будет передано значение для $param2, то внутри метода $param2 будет равен null. Если значение будет передано, оно будет сохранено в $param2.

Пользователь

от shayna.buckridge , 4 месяца назад

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