Laravel 8具有两种不同模型的多重身份验证返回False,即使凭据为true

Laravel 8具有两种不同模型的多重身份验证返回False,即使凭据为true,laravel,authentication,Laravel,Authentication,我创建了第二个模型,用于作为公司进行身份验证,我添加了警卫并提供 但允许登录 公司类别: <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Suppor

我创建了第二个模型,用于作为公司进行身份验证,我添加了警卫并提供 但允许登录

公司类别:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Support\Facades\Hash;

class Company extends Authenticatable
{
    use HasFactory;

    protected $guard = 'company';

    protected $guarded = [];

}
公司财务总监

use App\Http\Controllers\Controller;
use App\Models\Entreprise;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class CompanyLoginController extends Controller
{

    public function authenticate(Request $request)
    {
        $credentials = $request->only('email', 'password');

    

        if (Auth::guard('company')->attempt($credentials)) {
            $request->session()->regenerate();

            return redirect()->intended('dashboard');
        }

        return back()->withErrors([
            'email' => 'The provided credentials do not match our records.',
        ]);
    }
}

$hasher->check()是在深入编写te代码后返回false的函数,但由于某些原因,我找不到解决方案。

正如您所说,内置函数不起作用,因此您可以尝试这样的手动方法

公共功能验证(请求$Request)
{
$company=company::where('email',$request->email)->first();
如果(!$公司){
return back()->withErrors([
“电子邮件”=>“该电子邮件不存在。”,
]);
}
如果(哈希::检查($request->password,$company->password)){
auth()->guard('company')->login($company);
return redirect()->designed('dashboard');
}
return back()->withErrors([
“电子邮件”=>“提供的凭据与我们的记录不匹配。”,
]);
}

注册时,确保保存
散列的
密码它是散列的,使用散列外观,Hash::make()try
php artisan config:clear
在没有任何更改之前我已经尝试过了,请手动使用
use App\Http\Controllers\Controller;
use App\Models\Entreprise;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class CompanyLoginController extends Controller
{

    public function authenticate(Request $request)
    {
        $credentials = $request->only('email', 'password');

    

        if (Auth::guard('company')->attempt($credentials)) {
            $request->session()->regenerate();

            return redirect()->intended('dashboard');
        }

        return back()->withErrors([
            'email' => 'The provided credentials do not match our records.',
        ]);
    }
}