Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Параметры действий

Параметры действий

Методы действий для встроенных действий и методы run() для отдельных действий могут принимать параметры, называемые параметры действий. Их значения берутся из запросов. Для [[yii\web\Application|Веб приложений]], значение каждого из параметров действия берется из $_GET, используя название параметра в качестве ключа; для [[yii\console\Application|консольных приложений]], они соответствуют аргументам командной строки.



В приведенном ниже примере, действие view (встроенное действие) определяет два параметра: $id и $version.

namespace app\controllers;

use yii\web\Controller;

class PostController extends Controller
{
    public function actionView($id, $version = null)
    {
        // ...
    }
}

Для разных запросов параметры действий будут определены следующим образом:

  • http://hostname/index.php?r=post/view&id=123: параметр $id будет присвоено значение '123', в то время как $version будет иметь значение null, т. к. строка запроса не содержит параметра version;
  • http://hostname/index.php?r=post/view&id=123&version=2: параметрам $id и $version будут присвоены значения '123' и '2' соответственно;
  • http://hostname/index.php?r=post/view: будет брошено исключение [[yii\web\BadRequestHttpException]], т. к. обязательный параметр $id не был указан в запросе;
  • http://hostname/index.php?r=post/view&id[]=123: будет брошено исключение [[yii\web\BadRequestHttpException]], т. к. параметр $id получил неверное значение ['123'].

Если вы хотите, чтобы параметр действия принимал массив значений, вы должны использовать type-hint значение array, как показано ниже:

public function actionView(array $id, $version = null)
{
    // ...
}

Теперь, если запрос будет содержать URL http://hostname/index.php?r=post/view&id[]=123, то параметр $id примет значение ['123']. Если запрос будет содержать URL http://hostname/index.php?r=post/view&id=123, то параметр $id все равно будет содержать массив, т. к. скалярное значение '123' будет автоматически сконвертировано в массив.

Вышеприведенные примеры в основном показывают как параметры действий работают для Веб приложений. Больше информации о параметрах консольных приложений представлено в секции Консольные команды.

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )


Обсудить эту статью

INFO: Вы отправляете сообщение как 'Гость'