Страница 1 из 1

экшены для POST запросов с параметрами

Добавлено: 2019.03.25, 04:06
Reystlin
Доброго времени суток ув. форумчане
освариваю фреймоврк, столкнулся с непониманием как правильно формить функцию в контроллере для приема пост запросов с параметрами в формате JSON.
в интернете выкопал вариант вот такой:
public function actionLogin()
{
$data = \Yii::$app->request->post();
return $data;
}

Но у него есть очевидный минус.
в случае с GET запросами параметры передаются в виде параметров ф-и, что позволяет её вызывать в других кусках кода.
с передачей параметров через $app->request такое уже не получается. плюс пропадает проверка на передачу параметров.
как быть?

Re: экшены для POST запросов с параметрами

Добавлено: 2019.03.26, 02:17
Seagull
А смысл action вызывать в другом участке кода?
Если JSON, то:

Код: Выделить всё

public function actionLogin()
{
	$data = \Yii::$app->request->getBodyParams();
	return $data;
}
А для проверки данных можно формы использовать.

Код: Выделить всё

public function actionLogin()
{
	$loginForm = new \app\models\forms\LoginForm();
	$loginForm->load(\Yii::$app->request->getBodyParams(), '');
	if ($loginForm->validate()) {
		//...
		return /*...*/;
	}
	return $loginForm;
}