Получать только строку «admin» в функции хранилища контроллера Laravel 6 - PullRequest
0 голосов
/ 17 октября 2019

Я хочу иметь возможность зарегистрировать пользователя Laravel из моего внешнего интерфейса Vue, чтобы я мог создавать учетные записи сотрудников. Я строю объект данных спереди и отправляю ovject с запросом post на мой маршрут /api/v1/users, который направляет на UserController@store.

Сообщение Axios:

  ...

  getHeaders() {
    return {headers: {
      "Content-Type": 'application/json',
      "accept": "application/json",
    }}
  },

  ...

  postRequest(extraHeaders = {}) {
    let body = {"key": "Whoow"};
    console.log("Body:", body);

    axios.post(
      method: 'post',
      url: "http://${subDomain}.domain.lan/api/v1/users",
      headers: this.getHeaders(),
      body: body,
    })
    .then(function (response) {
      console.log("response", response.data);
    })
    .catch(function (error) {
      return error;
    });
  },

   ...

Полезная нагрузка запроса в devtools показывает мне: {key: "Whoow"} что в точности совпадает с напечатанным в консоли: Body: {key: "Whoow"} В моем UserController@store я получаютолько строка «admin» как $data

    ...

    use Illuminate\Support\Facades\Request;
    ...

    protected function store(Request $data)
    {
      Log::debug("Request received");
      Log::debug(gettype($data));
      Log::debug($data->all());

      return response()->json(["name" => "Pieter"]);
    }

    ...

Журнал Laravel показывает мне это:

[2019-10-16 22:00:27] local.DEBUG: Request received  
[2019-10-16 22:00:27] local.DEBUG: string  
[2019-10-16 22:00:27] local.DEBUG: admin  

На переднем конце я получаю ответ правильно:

response {name: "Pieter"} 

В случае, если это имеет значение, мой маршрут:

Route::post('/api/v1/registrations', 'Auth\RegisterController@store');

Согласно документам Laravel (https://laravel.com/docs/5.7/requests) я должен получить Request объект. Я понятия не имею, почему я получаю что-тоотличается от фактического поста.

Может кто-нибудь мне помочь?

Ответы [ 2 ]

1 голос
/ 17 октября 2019

Вам нужен экземпляр Illuminate\Http\Request экземпляр в вашем store методе контроллера. Так что попробуйте следующее:

public function store(Request $request)
{

    dd($request->all()); // you should get all the params
}
0 голосов
/ 17 октября 2019

хранилище публичных функций (Request $ request) {

return $request; // you will get all the params using return statement

}

...