Маршрут запроса почты Laravel - PullRequest
1 голос
/ 15 июня 2019

введите описание изображения здесь У меня есть следующий контроллер в php laravel:

// .....

class RegisterController extends Controller
{
//...
//...
    protected function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);
    }
}

Я использую следующий маршрут:

Route::post('api/auth/register', 'Auth\RegisterController@create');

Я получаю следующую ошибку: «Слишком мало аргументов для функции App \ Http \ Controllers \ Auth \ RegisterController :: create (), 0 передано и ожидается ровно 1»

Мне нужна ваша помощь, чтобы передать параметры запроса в мою функцию (правильно сформировать маршрут)

Ответы [ 2 ]

1 голос
/ 15 июня 2019

Вы можете сделать это таким образом,

use Illuminate\Http\Request;

class RegisterController extends Controller
{
    protected function create(Request $request)
    {
        $data = $request->all();
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);
    }
}
1 голос
/ 15 июня 2019

Попробуйте изменить параметр вашего метода на Запрос $ request

, чтобы получить экземпляр текущего HTTP-запроса с помощью внедрения зависимостей, вам следует ввести подсказку класса Illuminate\Http\Requestна вашем методе контроллера.Экземпляр входящего запроса будет автоматически введен контейнером службы

и получит данные из полей запроса:

protected function create(Illuminate\Http\Request $request)
{
    return User::create([
        'name' => $request->name,
        'email' => $request->email,
        'password' => Hash::make($request->password),
    ]);
}

Если вы не хотите записывать все Request Пространство имен в параметре метода, добавьте в начало файла:

use Illuminate\Http\Request;

, затем просто используйте имя класса:

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