I have 3 users
Customer Restaurant Rider
Am trying to register the rider via default routes so I can login again:
<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>
Here's is my the create method
protected function create(array $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;
}
what am trying to do is when a new rider wants to register themself he can, so he can also use the default login laravel routes and methods
but am failed to do that the page refresh on the same page and the rider doesn't register in the rider table.
https://pusher.com/tutorials/multiple-authentication-guards-laravel
example:
// app/Rider.php <?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 <?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',
];
}
you have to declare your guards
// config/auth.php
<?php
[...]
'guards' => [
[...]
'rider' => [
'driver' => 'session',
'provider' => 'riders',
],
'restaurant' => [
'driver' => 'session',
'provider' => 'restaurants',
],
],
[...]
and declare your providers
// config/auth.php
[...]
'providers' => [
[...]
'restaurants' => [
'driver' => 'eloquent',
'model' => App\Restaurant::class,
],
'riders' => [
'driver' => 'eloquent',
'model' => App\Rider::class,
],
],
[...]