我想在login()返回类型中使用authenticated()。我想尝试,当用户试图通过他们的phn_号码登录时,他们可以登录,并且还可以检查中间件/用户_角色。我在Authenticated()上编写的这部分代码。所以我的计划是当我登录时,login()也将通过authenticated()返回。
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\SiteSettings;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Auth;
use User;
class LoginController extends Controller
{
use AuthenticatesUsers;
protected function authenticated (Request $request, $user)
{
if (Auth::check() && Auth::user()->role->id == 1 ) {
$this->redirectTo = route('admin.dashboard');
} elseif(Auth::check() && Auth::user()->role->id == 2 ) {
$this->redirectTo = route('doctor.dashboard');
} elseif(Auth::check() && Auth::user()->role->id == 3 ) {
$this->redirectTo = route('nurse.dashboard');
} else {
$this->redirectTo = route('search.doctor');
}
}
// protected $redirectTo = $this->authenticated();
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function field()
{
if (filter_var(request()->phn_number,FILTER_VALIDATE_EMAIL)){
return 'email';
}else{
return 'phn_number';
}
}
public function login()
{
// Check Right Position
// return $this->field();
if (Auth::attempt([$this->field()=>request()->phn_number, 'password'=>request()->password ])){
// Wanna Return Authenticated function
//return redirect()->intended('/');
return redirect()->intended($this->authenticated());
}else{
return redirect()->back()->withInput('phn_number');
}
}
}
因此,它返回给函数App\Http\Controllers\Auth\LoginController::authenticated()的参数太少<我也尝试使用
return $this->authenticated();
它也给我错误。
重写illighted\Foundation\Auth\AuthenticatesUsers
类上的方法的authenticates()
方法有两个必须传递给的参数,因此将login()
方法更改为此参数:
public function login(Request $request)
{
// Check Right Position
// return $this->field();
if (Auth::attempt([$this->field() => $request->phn_number, 'password' => $request->password])) {
// Wanna Return Authenticated function
//return redirect()->intended('/');
return redirect()->intended(authenticated($request, $this->guard()->user()));
} else {
return redirect()->back()->withInput('phn_number');
}
}
正如您所看到的,我们正在调用验证($请求,$this-
您还可以重写您的
authenticated
方法并使用$user
,也无需使用Auth::chcek()
,因为用户在到达此方法时已通过身份验证:
protected function authenticated (Request $request, $user)
{
if ($user->role->id == 1) {
$this->redirectTo = route('admin.dashboard');
} else if($user->role->id == 2) {
$this->redirectTo = route('doctor.dashboard');
} else if($user->role->id == 3) {
$this->redirectTo = route('nurse.dashboard');
} else {
$this->redirectTo = route('search.doctor');
}
}
当我将数据发送到MySQL数据库时,我在上遇到了这个错误 此错误: 函数App\Http\Controllers\Auth\LoginController::authenticated()的参数太少,在C:\xampp\htdocs\codecrowne\vendor\laravel\framework\src\light\Foundation\Auth\AuthenticatesUsers.ph
帮助我理解并解决这些错误。 错误: Symfony\Component\Debug\Exception\FatalThrowableError(E\u RECOVERABLE\u ERROR)类型错误:传递给App\Http\Controllers\Auth\LoginController::authenticated()的参数1必须是App\Http\Controllers\Auth\Reque
我是PHP和Laravel的初学者。我在我的项目Laravel 7中使用。我有存储库模式在我的项目与缓存。 PageServiceProvider: CachingBaseRepository: BaseRepository: PageRepository: 恶作剧记录片 PageRepositoryInterface: 我想在上面的代码中为我的网站添加缓存。我的控制器如下所示: 当我运行上述代码
我得到以下错误: 致命错误:Uncaught ArgumentCounter错误:函数wpdb::prepare()的参数太少,1传入/homepages/39/d740877019/htdocs/test/wp content/themes/eduma/formulaire_get。php位于第108行,在/homepages/39/d740877019/htdocs/test/wp inclu
我正在尝试发送验证电子邮件,这是给我的错误代码 它给了我以下错误: 传递给App\Http\Controllers\Auth\RegisterController::registed()的参数1必须是App\Http\Controllers\Auth\Request的实例,给定的照亮\Http\Request的实例,在/home/bassel/book\u generation/vendor/la
我正在尝试为用户设置策略。然而,我不断得到一个错误: 太少的参数功能应用\政策\用户政策::更新(),1传递 /vendor/laravel/framework/src/Illuminate/Auth/Access/Gate.php在第481行,正好2预期(视图: /resources/views/users/index.blade.php) 错误异常 /app/Policies/UserPoli