У меня возникла проблема с дублированием формы регистрации пользователя laravel - PullRequest
0 голосов
/ 20 июня 2020

Я хочу создать другую регистрационную форму для создания пользователя с правами администратора, эта форма будет отличаться от обычной регистрации, которая назначит пользователя как администратора. Дублирую регистрационную форму. Все идет нормально, пока я не ввожу значения в регистрационную форму и не нажимаю кнопку регистрации. Это дает мне ошибку: «Маршрут [admin] не определен. (View: C: \ xampp \ htdocs \ courseRecomendation \ resources \ views \ admin \ register.blade. php)»

Зарегистрируйте лезвие файл

   <div class="card-body">
     <form method="POST" action="{{ route('admin') }}">
      @csrf
      
       .................
       .................
                    
       <div class="form-group row mb-0">
         <div class="col-md-6 offset-md-4">
           <button type="submit" class="btn btn-primary">
             {{ __('Register') }}
           </button>
         </div>
       </div>
     </form>
   </div>

AdminRegisterController

<?php
namespace App\Http\Controllers\Admin;
// namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use App\User;
use Illuminate\Foundation\Auth\AdminRegister;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;

class AdminRegisterController extends Controller
{
    use AdminRegister;

    protected $redirectTo = '/';

    public function __construct()
    {
        $this->middleware('guest');
    }

    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => ['required', 'string', 'min:8', 'confirmed'],
        ]);
    }

    protected function create(array $data)
    {
        $user = User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);

        if ($data['role'] === null) {
            $user->assignRole('admin');
        }

        return $user;
    }

}

Маршруты

Route::get('/admin/register', 'Admin\AdminRegisterController@showRegistrationForm');
Route::post('/admin', 'Admin\AdminRegisterController@admin');

1 Ответ

1 голос
/ 20 июня 2020

В маршрут нужно добавить name:

Route::post('/admin', 'Admin\AdminRegisterController@admin')->name("admin");
...