试图通过默认的laravel Auth注册多个用户

问题描述 投票:0回答:1

我有3个用户

客户 餐厅 骑士

我正在尝试通过默认路线注册骑手,以便我可以再次登录:

<form method="POST" action="{{ route('register') }}">
        @csrf

        <h4 class="text-light-black fw-600">Create your account</h4>

        <input type="text" name="type" value="rider">

        <div class="row">

            <div class="col-lg-6 col-md-12 col-sm-6">
                <div class="form-group">
                    <label class="text-light-white fs-14">First name</label>
                    <input type="text" name="first_name" class="form-control form-control-submit"
                           placeholder="First Name" required>
                </div>
            </div>
            <div class="col-lg-6 col-md-12 col-sm-6">
                <div class="form-group">
                    <label class="text-light-white fs-14">Last name</label>
                    <input type="text" name="last_name" class="form-control form-control-submit" placeholder="Last Name"
                           required>
                </div>
            </div>


            <div class="col-lg-6 col-md-12 col-sm-6">
                <div class="form-group">
                    <label class="text-light-white fs-14">Username</label>
                    <input type="text" name="username" class="form-control form-control-submit" placeholder="Username"
                           required>
                </div>
            </div>
            <div class="col-lg-6 col-md-12 col-sm-6">
                <div class="form-group">
                    <label class="text-light-white fs-14">CNIC</label>
                    <input type="text" name="cnic" class="form-control form-control-submit" placeholder="CNIC" required>
                </div>
            </div>


            <div class="col-lg-6 col-md-12 col-sm-6">
                <div class="form-group">
                    <label class="text-light-white fs-14">Ride Number</label>
                    <input type="text" name="ride_number" class="form-control form-control-submit"
                           placeholder="Ride Number" required>
                </div>
            </div>
            <div class="col-lg-6 col-md-12 col-sm-6">
                <div class="form-group">
                    <label class="text-light-white fs-14">Ride Chassis</label>
                    <input type="text" name="chassis_number" class="form-control form-control-submit"
                           placeholder="Ride Chassis" required>
                </div>
            </div>

            <div class="col-lg-6 col-md-12 col-sm-6">
                <div class="form-group">
                    <label class="text-light-white fs-14">Password</label>
                    <input type="password" name="password" class="form-control form-control-submit"
                           placeholder="Password" required>
                </div>
            </div>
            <div class="col-lg-6 col-md-12 col-sm-6">
                <div class="form-group">
                    <label class="text-light-white fs-14">Confirm Password</label>
                    <input type="password" name="password_confirmation" class="form-control form-control-submit"
                           placeholder="Confirm Password" required>
                </div>
            </div>


            <div class="col-12">

                <div class="form-group">
                    <label class="text-light-white fs-14">Email</label>
                    <input type="email" name="email" class="form-control form-control-submit" placeholder="Email I'd" required>
                </div>

                <div class="form-group">
                    <label class="text-light-white fs-14">Address</label>
                    <input type="text" name="address" class="form-control form-control-submit" placeholder="Address" required>
                </div>

                <div class="form-group">
                    <button type="submit" class="btn-second btn-submit full-width">Create your account</button>
                </div>


                <div class="form-group text-center"></div>
                <span class="text-light-black fs-12 terms">By creating your Munchbox account, you agree to the <a
                        href="#"> Terms of Use </a> and <a href="#"> Privacy Policy.</a></span>
            </div>
        </div>

    </form>

这是我的创建方法

受保护的函数创建(数组$ data){ dd($ data);

if ($data['type']=='rider')
{
    $user= Rider::create([
        'first_name' => $data['first_name'],
        'last_name' => $data['last_name'],
        'password' => Hash::make($data['password']),
        'address' => $data['address'],
    ]);

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

return $user;

}

[尝试做的是当新车手希望自己注册时,他也可以使用默认的登录Laravel路线和方法

但是我无法在同一页面上刷新页面,并且骑手没有在骑手表中注册。

laravel e-commerce laravel-5.8 laravel-authentication multiple-users
1个回答
0
投票

[Básicamentenecesitas crear un guard por cada modelo de usuario,aqui un lindo教程donde explica como hacer esto:https://pusher.com/tutorials/multiple-authentication-guards-laravel

示例:

// app / Rider.php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class Rider extends Authenticatable
{
    use Notifiable;

    protected $guard = 'rider';

    protected $fillable = [
        'name', 'email', 'password',
    ];

    protected $hidden = [
        'password', 'remember_token',
    ];
}

// app / Restaurant.php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class Restaurant extends Authenticatable
{
    use Notifiable;

    protected $guard = 'restaurant';

    protected $fillable = [
        'name', 'email', 'password',
    ];

    protected $hidden = [
        'password', 'remember_token',
    ];
}

您必须宣布您的警卫

// config / auth.php

<?php

[...]
'guards' => [
    [...]
    'rider' => [
        'driver' => 'session',
        'provider' => 'riders',
    ],
    'restaurant' => [
        'driver' => 'session',
        'provider' => 'restaurants',
    ],
],
[...]

并声明您的提供者

// config/auth.php

[...]
'providers' => [
    [...]
    'restaurants' => [
        'driver' => 'eloquent',
        'model' => App\Restaurant::class,
    ],
    'riders' => [
        'driver' => 'eloquent',
        'model' => App\Rider::class,
    ],
],
[...]
© www.soinside.com 2019 - 2024. All rights reserved.