Не получать данные из API в CakePHP - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь сделать API.Проблема в том, что это не значение ответа.Это показывает ноль.Я пользуюсь почтальоном.Здесь я держу json в теле в формате json.Моя цель - показать имя, когда я нажму api.Вот данные, которые я передаю

{
"username":"xxxx"
}

В моем контроллере API

public function getName()
{
    if ($this->request->is('post')) {

        $name = $this->request->data('username');
        $val = ["username" => $name];

        $this->response->type('json');
        $this->response->body(json_encode($val));
        return $this->response;

    }
}

Ответы [ 3 ]

0 голосов
/ 09 мая 2019

попробуйте это (для CakePHP> 3):

if ($this->request->is('post')) {
    $this->viewBuilder()->className('Json');

    $name = $this->request->data('username');
    $val = ["username" => $name];

    $this->set(compact('val'));
    $this->set('_serialize', ['val']);
}
0 голосов
/ 23 мая 2019

Вы пробовали

$input = $this->request->input('json_decode');
pr($input);
0 голосов
/ 08 мая 2019

CakePHP по-прежнему PHP. В самом верху функции я бы сделал pr($_POST); и посмотрел, что происходит. Если ничего, вы определенно размещаете? Если вы видите какие-либо данные, перед ними стоит имя модели или что-то еще, что может привести к тому, что $this->request->data('username') вернет null? По крайней мере, вы можете убедиться, что вы действительно публикуете в нужном месте, и идете оттуда.

...