首页 > 解决方案 > 在 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'),
            ]);
        }

Laravel 5.5:注册前执行一个方法

家庭控制器

    <?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');
        }
    }

标签: laravel

解决方案


您返回的返回值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');
}

推荐阅读