Php 尝试()方法在Laravel 6中未定义
我正在尝试在Laravel项目中验证管理员身份。我的auth.php如下所示:Php 尝试()方法在Laravel 6中未定义,php,laravel,laravel-6,Php,Laravel,Laravel 6,我正在尝试在Laravel项目中验证管理员身份。我的auth.php如下所示: 'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'admin' => [ 'driver' => 'session', 'provider' => 'admins', ],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
AdminController.php
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class AdminController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function adminLogin(){
return view('auth.adminLogin');
}
public function cheackAdminLogin(Request $request){
$this->validate($request, [
'email' => 'required|email',
'password' => 'required|min:6'
]);
if (Auth::guard('admin')->attempt(['email' => $request->email,
'password' => $request->password])) {
return redirect()->intended('/admin');
}
return back()->withInput($request->only('email')); */
}
}
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class AdminDasboardController extends Controller
{
public function adminPanel()
{
return view('adminPanel');
}
}
因此它看起来像是guard('admin')
配置错误,并且没有trunt()
方法。在php artisan tinker中试试看:auth()->guard('web')->trunt()
(应该是false
),而不是auth()->guard('admin')->trunt()
(这会引发错误)。另外,auth()
和auth::
是做同一件事的不同方法:)好的,我会做。旁注,用户和管理员有不同的模型会使身份验证变得困难。考虑使用角色,其中用户是可以登录的实体,具有不同的角色(用户、管理员),一旦登录,就可以区分它们的权限。另外,包括您的Admin.php
模型;我打赌它缺少作为扩展的可验证的和相关特性