используя laravel аутентификацию с другой таблицей - PullRequest
0 голосов
/ 07 января 2020

Как уже было сказано, я хочу использовать разные таблицы (клиенты) для аутентификации.

Я уже отредактировал некоторые коды, но все еще не могу использовать метод аутентификации.

Я перепробовал слишком много вариантов, но все еще не могу войти с аутентификацией после регистрации пользователя. .

config/auth.php

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'client' => [
            'driver' => 'session',
            'provider' => 'clients',
        ]


    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],
        'clients' => [
            'driver' => 'eloquent',
            'model' => App\Client::class,
        ],

модальный файл клиента.

    class Client extends Authenticatable
    {

        protected $guard = 'client';


        public $timestamps = true;

        protected $fillable = [
            'email',
            'password',
            'fullname',
        ];


        protected $hidden = [
            'password', 'remember_token',
        ];

    }

файл миграции клиентов.

    Schema::create('clients', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->string('email')->unique();
        $table->string('password');
        $table->string('fullname');
        $table->rememberToken();
        $table->timestamps();
    });

Контроллер

    public function showRegister()
    {
        return view('pages.register');
    }

    public function doRegister(ClientRequest $request)
    {
        $validated = $request->validated();
        $request->merge(['created_at' => Carbon::now()]);
        $request->merge(['password' => Hash::make($request->password) ]);

        $add = Client::create($validated);

        auth('client')->attempt($add);

        return redirect('my_profile')->with('success', 'success');
    }

После отправки регистрационной формы я получаю эту ошибку.

    Symfony\Component\Debug\Exception\FatalThrowableError
    Argument 1 passed to Illuminate\Auth\SessionGuard::attempt() must be of the type array, object given, called in C:\wamp64\www\laravel\app\Http\Controllers\HomepageController.php on line 117

когда я изменяю свой код попытки следующим образом, он возвращает ноль.

    auth('client')->attempt([
        'email'=> $request->email,
        'password'=> $request->password
    ]);

1 Ответ

0 голосов
/ 07 января 2020

Если user создается успешно, попробуйте эту строку.

auth('client')->login($add);

Удалите эту строку

auth('client')->attempt($add);
...