Php 此集合实例上不存在Laravel 5属性[userType]
我一直在获取属性[userType]不存在错误,当我尝试设置登录条件时 下面是我的控制器代码。我还试图使Auth控制器,但我只是不断从这得到相同的错误Php 此集合实例上不存在Laravel 5属性[userType],php,laravel-5,Php,Laravel 5,我一直在获取属性[userType]不存在错误,当我尝试设置登录条件时 下面是我的控制器代码。我还试图使Auth控制器,但我只是不断从这得到相同的错误 <?php namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Providers\RouteServiceProvider; use Illuminate\Foundation\Auth\AuthenticatesUsers;
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use App\User;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/dashboard';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
protected function redirectTo()
{
$user = User:all();
if($user->userType == 'admin')
{
return 'dashboard';
}
else
{
return 'verify first';
}
}
}
它非常清晰
protected function redirectTo()
{
$user = User:all();
if($user->userType == 'admin')
{
return 'dashboard';
}
else
{
return 'verify first';
}
}
在重定向到
方法中,您正在访问$user=user:all()代码>而不是一条记录。它可能是Auth::user()
或user::find($id)
全部返回多条记录,因此您无法直接访问userType
您可以使用经过身份验证的方法,而不是使用重定向到
to
protected function authenticated(Request $request, $user)
{
if($user->userType == 'admin')
{
return redirect()->route("dashboard");
}
else
{
auth()->logout();
}
}
User:all()代码>将所有用户放入一个集合中。它不是单个用户。也许您正在考虑使用Auth::user()
,它可以获取已登录的用户?如何直接访问userType?如果使用User::find($id);如果我使用thiskay,我会不断得到未定义的变量。我更新了我的Answetrins,而不是使用redirectTo(),以便您可以使用authenticated()method@Kaye.any问题,然后让我使用Lightning\Http\Request;导入这个
$user = User:all();
protected function authenticated(Request $request, $user)
{
if($user->userType == 'admin')
{
return redirect()->route("dashboard");
}
else
{
auth()->logout();
}
}