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