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

Всё что касается построения API
Ответить
Reystlin
Сообщения: 1
Зарегистрирован: 2019.03.25, 04:01

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

Сообщение Reystlin » 2019.03.25, 04:06

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

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

Аватара пользователя
Seagull
Сообщения: 31
Зарегистрирован: 2019.01.24, 20:00

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

Сообщение Seagull » 2019.03.26, 02:17

А смысл 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;
}

Ответить