laravel - 在 laravel 8 中注册后如何重定向到功能控制器
问题描述
我希望你能帮助我,我想registercontroller
从 Laravel 自定义,我有这个,但是在用户注册后给我发送一个 JSON 数据,我该怎么办不要给我发送 JSON 并重定向到HomeController
. 谢谢。PD。对不起我的英语不好。
public function register(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => ['required', 'string', 'max:255'],
'nombre' => ['required', 'string', 'max:255','unique:users'],
'telefono' => ['required', 'numeric', 'max:99999999', 'min:00000000'],
'direccion' => ['required', 'string', 'max:255'],
'sueldo' => ['numeric','min:0.01','max:0.99'],
//'foto' => ['string', 'max:255'],
'email' => ['string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:4', 'confirmed'],
]);
if ($request->hasFile('foto')) {
$request = request();
$file = $request->file('foto');
$nom_imagen = time().".".$file->getClientOriginalExtension();
$upload_path = 'imagenes/';
$profile_image_url = $upload_path . $nom_imagen;
$success = $file->move($upload_path, $nom_imagen);
} else {
$nom_imagen = '';
}
return User::create([
'name' => $request->input('name'),
'nombre' => $request->input('nombre'),
'telefono' => $request->input('telefono'),
'direccion' => $request->input('direccion'),
'sueldo' => $request->input('sueldo'),
'email' => $request->input('email'),
'foto' => $nom_imagen,
'password' => Hash::make($request['password']),
return redirect()->action('HomeController@index'),
]);
}
家庭控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
return view('index');
}
}
解决方案
您返回的返回值User::create()
将是一个 User 对象,该对象在作为响应返回时转换为 json。
此外,由于您的 HomeController 受“auth”中间件保护,因此您需要在重定向到“/home”之前登录用户
use Illuminate\Support\Facades\Auth;
public function register(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => ['required', 'string', 'max:255'],
'nombre' => ['required', 'string', 'max:255','unique:users'],
'telefono' => ['required', 'numeric', 'max:99999999', 'min:00000000'],
'direccion' => ['required', 'string', 'max:255'],
'sueldo' => ['numeric','min:0.01','max:0.99'],
//'foto' => ['string', 'max:255'],
'email' => ['string', 'email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:4', 'confirmed'],
]);
if ($request->hasFile('foto')) {
$request = request();
$file = $request->file('foto');
$nom_imagen = time().".".$file->getClientOriginalExtension();
$upload_path = 'imagenes/';
$profile_image_url = $upload_path . $nom_imagen;
$success = $file->move($upload_path, $nom_imagen);
} else {
$nom_imagen = '';
}
$user = User::create([
'name' => $request->input('name'),
'nombre' => $request->input('nombre'),
'telefono' => $request->input('telefono'),
'direccion' => $request->input('direccion'),
'sueldo' => $request->input('sueldo'),
'email' => $request->input('email'),
'foto' => $nom_imagen,
'password' => Hash::make($request['password']),
]);
Auth::guard()->login($user);
return redirect('/home');
}
推荐阅读
- reflection - PL/SQL 反射集属性值
- tensorflow2.0 - 为什么在 Tensorflow 2.0 中从 .hdf5 转换为 .tflite 时出现“ValueError: Unknown layer: KerasLayer”?
- powershell - 多台计算机可以使用 PowerShell 将数据写入一台远程计算机中的单个文件吗?
- java - 如何在 cas-overlay-5.1.x 中使用 spring-cloud-zookeeper-discovery
- c++ - 将元素从 opencv 矩阵复制到特征矩阵
- bash - How to use user input to select a variable in bash?
- c - 为什么 C11 全局和局部静态断言的行为不同?
- kotlin - 在没有析构函数/生命周期的类中启动协程
- c# - 如何使用 SimpleInjector 注册 CustomContext(DbConnection 连接,DbCompiledModel 编译模型)?
- spring-boot - Spring boot 2 + Microsoft AD 身份验证 + 未找到 userPassword 属性