Php Laravel:如何根据每个用户的id为其提供不同的登录页

Php Laravel:如何根据每个用户的id为其提供不同的登录页,php,laravel,Php,Laravel,我使用的是基本的laravelauth登录和注册代码。我只是在表单中添加了更多功能。我试图让每个用户在登录时根据他们的帐户类型重定向到他们自己的不同页面。现在,每个用户在登录时都会重定向到主刀片服务器。如何更改此设置,使其重定向到每个用户的自定义页面?下面是我的代码: 添加用户刀片 @extends('layouts.app') @section('content') <div class="container" style="width:60%"> <

我使用的是基本的laravel
auth
登录和注册代码。我只是在表单中添加了更多功能。我试图让每个用户在登录时根据他们的帐户类型重定向到他们自己的不同页面。现在,每个用户在登录时都会重定向到主刀片服务器。如何更改此设置,使其重定向到每个用户的自定义页面?下面是我的代码:

添加用户刀片

@extends('layouts.app')

@section('content')
    <div class="container" style="width:60%">
        <div class="card">
            <div class="card-header">Add New User</div>
            <div class="card-body">
                {!! Form::open(['action'=>'UserAccountsController@store', 'method'=>'POST']) !!}
                    @csrf
                    <div class="form-group row justify-content-center">
                        {{Form::label('acctyp', 'Account Type',['class'=>'col-md-2'])}}
                        <div class="col-md-4">
                            {{Form::select('acctyp',['Adm'=>'Admin','Rcd'=>'Records','Hod'=>'H.O.D','Tch'=>'Teacher','Std'=>'Student'],null,['placeholder'=>'Choose Account...','class'=>'form-control'])}}
                        </div>
                    </div>
                    <div class="form-group row justify-content-center">
                        {{Form::label('name', 'Name',['class'=>'col-md-2'])}}
                        <div class="col-md-4">
                            {{Form::text('name','',['placeholder'=>'Name','class'=>'form-control'])}}
                        </div>
                    </div>
                    <div class="form-group row justify-content-center">
                        {{Form::label('surname', 'Surname',['class'=>'col-md-2'])}}
                        <div class="col-md-4">
                            {{Form::text('surname','',['placeholder'=>'Surname','class'=>'form-control'])}}
                        </div>
                    </div>
                    <div class="form-group row justify-content-center">
                        {{Form::label('gender', 'Gender',['class'=>'col-md-2'])}}
                        <div class="col-md-4">
                            {{Form::select('gender',['F'=>'Female','M'=>'Male','O'=>'Other'],null,['placeholder'=>'Choose Gender...','class'=>'form-control'])}}
                        </div>
                    </div>
                    <div class="form-group row justify-content-center">
                        {{Form::label('dob', 'Date of Birth',['class'=>'col-md-2'])}}
                        <div class="col-md-4">
                            {{Form::date('dob','',['class'=>'form-control'])}}
                        </div>
                    </div>
                    <div class="form-group row justify-content-center">
                        {{Form::label('email', 'E-mail Address',['class'=>'col-md-2'])}}
                        <div class="col-md-4">
                            {{Form::email('email','',['placeholder'=>'E-mail Address','class'=>'form-control'])}}
                        </div>
                    </div>
                    <div class="form-group row justify-content-center">
                        {{Form::label('userid', 'User I.D',['class'=>'col-md-2'])}}
                        <div class="col-md-4">
                            {{Form::text('userid','',['placeholder'=>'User I.D','class'=>'form-control'])}}
                        </div>
                    </div>
                    <div class="form-group row justify-content-center">
                        {{Form::label('password', 'Password',['class'=>'col-md-2'])}}
                        <div class="col-md-4">
                            {{Form::password('password',['placeholder'=>'Password','class'=>'form-control'])}}
                        </div>
                    </div>
                    <div class="form-group row justify-content-center">
                        {{Form::label('cpassword', 'Confirm Password',['class'=>'col-md-2'])}}
                        <div class="col-md-4">
                            {{Form::password('cpassword',['placeholder'=>'Confirm Password','class'=>'form-control'])}}
                        </div>
                    </div>
                    <div class="form-group row justify-content-center">
                       {{Form::submit('Add User',['class'=>'btn btn-success'])}}
                    </div>
                {!! Form::close() !!}
            </div>
        </div>
    </div>
    <script type="text/javascript">
        $(document).ready( function() {
            $('#userid').on('change', function() {
                $('#password').val($(this).val());
                $('#cpassword').val($(this).val());
            });
        });
    </script>
@endsection
@extends('layouts.app'))
@节(“内容”)
添加新用户
{!!Form::open(['action'=>'UserAccountsController@store“,”方法“=>”发布“])
@csrf
{Form::label('acctyp','accounttype',['class'=>'col-md-2'])}
{Form::select('acctyp',['Adm'=>'Admin','Rcd'=>'Records','Hod'=>'H.O.D','Tch'=>'Teacher','Std'=>'Student'],null,['placeholder'=>'Choose Account…','class'=>'Form-control'])}
{{Form::label('name','name',['class'=>'col-md-2'])}
{{Form::text('name','',['placeholder'=>'name','class'=>'Form-control'])}
{Form::label('姓氏','姓氏',['class'=>'col-md-2'])}
{{Form::text('姓氏','',['placeholder'=>'姓氏','class'=>'表单控制'])}}
{{Form::label('gender','gender',['class'=>'col-md-2'])}
{Form::select('gender',['F'=>'Female','M'=>'Male','O'=>'Other'],null,['placeholder'=>'Choose gender…','class'=>'Form-control'])}
{Form::label('dob','出生日期',['class'=>'col-md-2'])}
{{Form::date('dob','',['class'=>'Form-control'])}
{Form::label('email','E-mail Address',['class'=>'col-md-2'])}
{{Form::email('email','',['placeholder'=>'email-Address','class'=>'Form-control'])}
{{Form::label('userid','useri.D',['class'=>'col-md-2'])}
{{Form::text('userid','',['placeholder'=>'useri.D','class'=>'Form-control'])}
{{Form::label('password','password',['class'=>'col-md-2'])}
{{Form::password('password',['placeholder'=>'password','class'=>'Form-control'])}
{{Form::label('cpassword','Confirm Password',['class'=>'col-md-2'])}}
{Form::password('cpassword',['placeholder'=>'Confirm password','class'=>'Form-control'])}
{{Form::submit('adduser',['class'=>'btn btn success'])}
{!!Form::close()!!}
$(文档).ready(函数(){
$('#userid')。在('change',function()上{
$('#password').val($(this.val());
$('#cpassword').val($(this.val());
});
});
@端部
登录控制器

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

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 = '/home';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }
}
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;

class UserAccountsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $accounts = User::all();
        return view('users.index')->with('accounts', $accounts);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('users.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $this->validate($request, [
            'acctyp'=>'required',
            'name'=>'required',
            'surname'=>'required',
            'gender'=>'required',
            'dob'=>'required',
            'email'=>'required',
            'userid'=>'required',
            'password'=>'required',
        ]);

        $account = new User;
        $account->acctyp = $request->input('acctyp');
        $account->name = $request->input('name');
        $account->surname = $request->input('surname');
        $account->gender = $request->input('gender');
        $account->dob = $request->input('dob');
        $account->email = $request->input('email');
        $account->userid = $request->input('userid');
        $account->password = bcrypt($request->input('password'));
        $account->save();

        return redirect('/users')->with('success', 'New user successfully added!');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $account = User::find($id);
        return view('users.show')->with('account', $account);
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $account = User::find($id);
        return view('users.edit')->with('account', $account);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $this->validate($request, [
            'acctyp'=>'required',
            'name'=>'required',
            'surname'=>'required',
            'gender'=>'required',
            'dob'=>'required',
            'email'=>'required',
            'userid'=>'required',
            'password'=>'required',
        ]);

        $account = User::find($id);
        $account->acctyp = $request->input('acctyp');
        $account->name = $request->input('name');
        $account->surname = $request->input('surname');
        $account->gender = $request->input('gender');
        $account->dob = $request->input('dob');
        $account->email = $request->input('email');
        $account->userid = $request->input('userid');
        $account->password = bcrypt($request->input('password'));
        $account->save();

        return redirect('/users')->with('success', 'User successfully updated!');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $account = User::find($id);
        $account->delete();

        return redirect('/users')->with('success', 'User successfully removed!');
    }
}

您可以在
登录控制器
上定义一个
重定向到
方法,并返回要重定向到的路径:

protected function redirectTo()
{
    // do your logic to decide where to go and return a path

    $user = $this->guard()->user();

    if ($user->acctyp == 'something') {
        return route('something.dashboard');
    }
    ...
}
使用
redirectTo
方法时,默认设置将尝试将它们重定向到“预期”URL,并返回从
redirectTo
返回的内容。(在
auth
中间件将他们重定向到登录页面之前,他们试图到达的地方)

如果您想完全控制响应,可以覆盖
LoginController
上的
AuthenticatesUsers
特性中的
authenticates
方法,以返回您想要的响应:

protected function authenticated(Request $request, $user)
{
    // do your logic here and return a redirect
    // to where you want them to go to

    if ($user->acctyp == 'something') {
        return redirect()->route('something.dashboard')
    }
    ...
}

您可以在
LoginController
上定义
redirectTo
方法,并返回要重定向到的路径:

protected function redirectTo()
{
    // do your logic to decide where to go and return a path

    $user = $this->guard()->user();

    if ($user->acctyp == 'something') {
        return route('something.dashboard');
    }
    ...
}
使用
redirectTo
方法时,默认设置将尝试将它们重定向到“预期”URL,并返回从
redirectTo
返回的内容。(在
auth
中间件将他们重定向到登录页面之前,他们试图到达的地方)

如果您想完全控制响应,可以覆盖
LoginController
上的
AuthenticatesUsers
特性中的
authenticates
方法,以返回您想要的响应:

protected function authenticated(Request $request, $user)
{
    // do your logic here and return a redirect
    // to where you want them to go to

    if ($user->acctyp == 'something') {
        return redirect()->route('something.dashboard')
    }
    ...
}

为此,您应遵循以下步骤:

LoginController.php中

重写此方法
protected$redirectTo='/home'
因此,您需要删除上述代码并添加以下代码:

public function redirectTo(){


    $type = Auth::user()->acctyp; 


    switch ($type) {
        case 'type1':
            return '/YOUR PATH';
            break;
        case 'type2':
            return '/YOUR PATH';
            break; 
        default:
            return '/YOUR PATH'; 
            break;
    }
}

记住要包括class
light\Support\Facades\Auth
LoginController.php

中,您应该按照以下步骤进行操作:

LoginController.php中

重写此方法
protected$redirectTo='/home'
因此,您需要删除上述代码并添加以下代码:

public function redirectTo(){


    $type = Auth::user()->acctyp; 


    switch ($type) {
        case 'type1':
            return '/YOUR PATH';
            break;
        case 'type2':
            return '/YOUR PATH';
            break; 
        default:
            return '/YOUR PATH'; 
            break;
    }
}
记住要包括class
light\Support\Facades\Auth
in
LoginController.php