Laravel 5.5 Api Регистрация вопроса - PullRequest
0 голосов
/ 10 сентября 2018

Я пытался запустить и запустить этот API, и продолжаю испытывать эту ошибку, когда я тестирую в Почтальоне.

1. api.php
Route::group(['middleware' => ['api','cors']], function () {
     Route::post('auth/register', 'Auth\RegisterController@create');
});

2. RegisterController 
    protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
    ]);
}}
  1. Конфигурация почтальона установлена ​​на Post, тело установлено на raw и JSON (application / json) Ниже приведен код json почтальона.

    { "имя": "Уолтер Уайт", "электронная почта": "wwhite@someemaildomain.net", "пароль": "тестовый пароль" }

Ниже приведена ошибка Слишком мало аргументов для функции App \ Http \ Controllers \ Auth \ RegisterController :: create (), 0 передано и ровно 1 ожидается в файле C: \ xampp \ examplestuff

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

Pass Запрос к вашей функции создания, такой как:

protected function create(Request $request){...

и доступ к вашим данным следующим образом:

$request->name
0 голосов
/ 11 сентября 2018

Вы должны сделать проверку, пожалуйста, проверьте ниже ответ

 protected function create(Request $request)
{
    $data = $request->json()->all();

    $validator =  Validator::make($data, [
        'name' => 'required|string|max:255',
        'email' => 'required|string|email|max:255|unique:users',
        'password' => 'required|string|min:6|confirmed',
    ]);

    if ($validator->fails()) {
        foreach ($validator->messages()->getMessages() as $field_name => $message){
                $messages[] = $message[0];
        }
        $messages = $messages;
        $message = implode(',',$messages);
        $response = $messages;

        return $response;

    }else{

        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
        ]);
    }

}
0 голосов
/ 11 сентября 2018

Чтобы исправить вашу регистрацию, вы должны изменить определение маршрута на:

Route::group(['middleware' => ['api','cors']], function () {
    Route::post('auth/register', 'Auth\RegisterController@register');
});

Я предполагаю, что ваш RegisterController использует черту RegistersUsers.Эта черта предоставляет метод register, который использует метод RegisterController::create для создания самого нового пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...