laravel - 如何将新用户重定向到编辑个人资料页面
问题描述
我这里有问题。当新用户注册时,我想将他/她重定向到编辑个人资料页面...如何更改登录控制器以重定向到该页面?
这是我的注册控制器
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use App\User;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
class RegisterController extends Controller
{
/*
|--------------------------------------------------------------------------
| Register Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users as well as their
| validation and creation. By default this controller uses a trait to
| provide this functionality without requiring any additional code.
|
*/
use RegistersUsers;
/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo = '/profiles/'.$user->id.'/edit';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'type' => ['required'],
'name' => ['required', 'string', 'max:255'],
'last_name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'phone' => ['required', 'string', 'max:15', 'unique:users'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \App\User
*/
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'last_name' => $data['last_name'],
'email' => $data['email'],
'phone' => $data['phone'],
'type' => $data['type'],
'password' => Hash::make($data['password']),
]);
if($data['type'] == 'Learner'){
$user->attachRole('learner');
return $user;
}
elseif($data['type'] == 'Guardian'){
$user->attachRole('guardian');
return $user;
}
elseif($data['type'] == 'Teacher'){
$user->attachRole('teacher');
return $user;
}
}
}
编辑刀片.php
@extends('layouts.admin')
@section('main-content')
<!-- Page Heading -->
<h1 class="h3 mb-4 text-gray-800">{{ $user->name }} {{$user->last_name}}</h1>
<hr/>
@if (session('message'))
<div class="alert alert-success border-left-success alert-dismissible fade show" role="alert">
{{ session('message') }}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
@endif
<form method="POST" action="{{ route('profiles.update', $user->id) }}">
@csrf
@method('PATCH')
<div class="row">
<div class="col-md-9">
<div class="card shadow mb-4 px-4 pb-4">
<div class="card-header py-3 px-0">
<h6 class="m-0 font-weight-bold text-primary">User Information</h6>
</div>
@if(Auth::user()->hasRole(['superadministrator', 'administrator']))
<div class="row my-2">
<div class="col-md-2 font-weight-bold pt-2">Role:</div>
<div class="col-md-10">
<div class="form-group">
<select id="role" name="role" class="form-control @error('role') is-invalid @enderror" value="{{ old('role') }}">
<option value="">Choose user role...</option>
@foreach($roles as $role)
<option value="{{ $role->display_name }}" {{ $user->hasRole($role->name) ? 'selected' : '' }}>{{ $role->display_name }}</option>
@endforeach
</select>
@error('role')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
</div>
. . . . .
用户注册后必须到此页面而不是主目录...请帮助
解决方案
一个解法 :
- 创建迁移如何添加
$table->boolean('profil_edited')->default(0);
$fillable
更新您的模型以在数组上添加此字段- 检查这个值:
- 当用户登录时,并将用户重定向到个人资料页面
- 或在一个
middleware
推荐阅读
- r - 在 x 轴下标注
- javascript - 禁用文本输入字段中选项弹出的默认行为
- javascript - TinyMCE - 颜色选择器是空的
- google-drive-api - Google Drive API - 当多个用户登录时从 webViewLink 为特定用户加载文档
- python - itertools.product 参数的类型?
- android - 如何在用户单击注销之前安全地删除 Firestore 侦听器?
- clion - 打开 AzerothCore 项目时出现 CLion 错误
- python - 在 Python 中使用斯坦福 CoreNLP 进行情感分析
- javascript - Jquery querySelectorAll 使用除类以外的其他属性
- ruby-on-rails - 在 rails 6 alpha 上安装 https://github.com/twbs/bootstrap-rubygem