Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为不同类型的用户提供一个登录页面,并重定向到Laravel中的预期仪表板_Php_Laravel - Fatal编程技术网

Php 为不同类型的用户提供一个登录页面,并重定向到Laravel中的预期仪表板

Php 为不同类型的用户提供一个登录页面,并重定向到Laravel中的预期仪表板,php,laravel,Php,Laravel,我一直在计划为不同类型的用户创建一个登录页面,它将能够将他们引导到预期的仪表板/主页。这是我的两个用户: 旅行者 代理人 旅行者可以成功登录,并将被定向到预期主页,但代理不会被定向到其预期主页,而是被定向回登录页面 这是我的登录控制器代码 <?php namespace App\Http\Controllers\Auth; use Auth; use App\Travelers; use App\Agents; use App\Users; use App\Http\Controlle

我一直在计划为不同类型的用户创建一个登录页面,它将能够将他们引导到预期的仪表板/主页。这是我的两个用户:

  • 旅行者
  • 代理人
  • 旅行者可以成功登录,并将被定向到预期主页,但代理不会被定向到其预期主页,而是被定向回登录页面

    这是我的登录控制器代码

    <?php
    
    namespace App\Http\Controllers\Auth;
    
    use Auth;
    use App\Travelers;
    use App\Agents;
    use App\Users;
    use App\Http\Controllers\Controller;
    use Illuminate\Foundation\Auth\AuthenticatesUsers;
    use Illuminate\Http\Request;
    
    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
         */
    
        /**
         * Create a new controller instance.
         *
         * @return void
         */
        public function __construct()
        {
            $this->middleware('guest')->except('logout');
        }
    
        public function login(Request $request){
                if(Auth::attempt([
                    'email' => $request->email,
                    'password' => $request->password
                ])){   
                    $user = Users::where('email', $request->email)->first();
    
                    switch ($user->userType){
                        case 'traveler':
                            return redirect()->route('Traveler/HomePage');
                            break;
                        case 'travel agent':
                            return redirect()->route('Agent/HomePage');
                            break;
                    }
                }
                else{
                    return redirect()->route('login');
                }
        }
    
    }
    

    我认为您需要在
    LoginController
    例如:

    public function redirectPath() 
    {  
        if (Auth::user()->role == 'admin'){
            return '/admin';
        }
    
        return '/';
    }
    

    我认为您需要在
    LoginController
    例如:

    public function redirectPath() 
    {  
        if (Auth::user()->role == 'admin'){
            return '/admin';
        }
    
        return '/';
    }
    

    假设您将
    user\u type
    列添加到
    user
    表和
    1-users/2-admin

    LoginController.php

    //protected $redirectTo = '/dashboard';
    
    protected function redirectTo()
    {
        if(Auth::user()->user_type=='2'){
           return '/dashboard';
        }else{
           return '/game';
        }
    }
    
    所有
    管理员
    重定向到
    仪表板
    ,其他
    用户
    重定向到
    游戏
    。我使用的是laravel默认身份验证系统

    注意
    protected$redirectTo='/dashboard'
    改为

    protected function redirectTo()
    {
        return '/path';
    }
    

    参考资料:

    假设您将
    user\u type
    列添加到
    user
    表和
    1-users/2-admin

    LoginController.php

    //protected $redirectTo = '/dashboard';
    
    protected function redirectTo()
    {
        if(Auth::user()->user_type=='2'){
           return '/dashboard';
        }else{
           return '/game';
        }
    }
    
    所有
    管理员
    重定向到
    仪表板
    ,其他
    用户
    重定向到
    游戏
    。我使用的是laravel默认身份验证系统

    注意
    protected$redirectTo='/dashboard'
    改为

    protected function redirectTo()
    {
        return '/path';
    }
    

    参考资料:

    您使用的是什么版本的laravel?在交换机控制结构中添加一个全面的“默认值”。代理身份验证的结果是什么?可能与您使用的laravel版本重复?在交换机控制结构中添加一个全面的“默认值”。代理验证的结果是什么?可能是重复的我要试试这个。“redirectPath”后面真的是空的吗?不明白,你是什么意思?在“redirectPath”旁边的括号:)我要试试这个。“redirectPath”后面真的是空的吗?不明白,你是什么意思?在“redirectPath”旁边的括号中: