【发布时间】:2019-07-11 05:41:59
【问题描述】:
我有下面的控制器允许用户使用 laravel auth 系统登录,但是当用户单击“登录”按钮时,我收到以下错误:
传递给 Illuminate\Auth\SessionGuard::attempt() 的参数 1 必须是数组类型,给定对象,在 C:\laragon\www\AGRIAPP\projetinvestisseur\AgriApp_Investor\AgriAppInvestor\vendor\laravel\framework 中调用\src\Illuminate\Foundation\Auth\AuthenticatesUsers.php 在第 82 行
当我刷新页面时我登录所以我想解决这个问题
根据文档,尝试函数接受一个数组和一个布尔值
LoginController.php
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function showLoginForm()
{
return view('auth.login');
}
protected function credentials(Request $request)
{
$credentials = array(
'slug' => $request->slug,
'password' => $request->password,
'statut' => 1,
);
if(Auth::attempt( $credentials,false ))
{
return Redirect::to( '/admin/home' );
}
}
public function username()
{
return 'slug';
}
protected function authenticated()
{
$user = auth()->user();
$user->online = true;
$user->save();
if ($user->rule->pluck( 'name' )->contains( 'abonne' )) {
return Redirect::to( '/admin-dashboard' );
}
return Redirect::to( '/admin/home' );
}
public function logout()
{
$user = Auth::user();
$user->online=false;
$user->save();
Auth::logout();
return redirect('/');
}}
AuthController.php
protected function attemptLogin(Request $request)
{
return $this->guard()->attempt(
$this->credentials($request), $request->filled('remember')
);
}
/**
* Get the needed authorization credentials from the request.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
protected function credentials(Request $request)
{
return $request->only($this->username(), 'password');
}
【问题讨论】: