При отправке формы в register.blade.php вы будете перенаправлены обратно в индекс, а не на исходную страницу с отображаемыми ошибками. Я не уверен, почему это так.
Вызывается метод create в контроллере, но выполнение останавливается после проверки (как и ожидалось). Там нет перенаправления обратно к индексу, поэтому я не уверен, почему он решил вернуться туда. Насколько я понимаю, по умолчанию он перенаправляет обратно на форму с ошибками.
Маршруты:
<?php
Route::get('/', function () {
return view('pages.index');
});
Route::get('/home', function () {
return redirect('/');
});
// Login //
Route::get('/user/login', function () {
return view('pages.user.login');
});
Route::post('/user/login', 'UserController@store');
// Register //
Route::get('/user/register', function () {
return view('pages.user.register');
});
Route::post('/user/register', 'UserController@create');
Route::post('/user/register', 'UserController@create');
// Logout //
Route::get('/user/logout', 'UserController@destroy');
регистр.blade.php
@extends ('layout.master')
@section ('content')
<div class="row">
<div class="col-md-12">
<h1 align="center">User Registration</h1>
<br>
<form method="POST" action="/user/register">
{{ csrf_field() }}
<div class="form-group row">
<label for="name" class="col-sm-2 col-form-label">Full Name</label>
<div class="col-sm-10">
<input name="name" type="text" class="form-control" placeholder="Full Name">
</div>
</div>
<div class="form-group row">
<label for="phonenumber" class="col-sm-2 col-form-label">Phone Number</label>
<div class="col-sm-4">
<input name="phonenumber" type="tel" class="form-control" placeholder="Phone Number">
</div>
<label for="password" class="col-sm-2 col-form-label">Password</label>
<div class="col-sm-4">
<input name="password" type="password" id="password" class="form-control">
</div>
</div>
<div class="form-group row">
<label for="email" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-4">
<input name="email" type="email" class="form-control" placeholder="Email">
</div>
<label for="password_confirmation" class="col-sm-2 col-form-label">Confirm Password</label>
<div class="col-sm-4">
<input name="password_confirmation" type="password" id="password_confirmation" class="form-control">
</div>
</div>
<div class="form-group row">
<label for="street_address" class="col-sm-2 col-form-label">Street Address</label>
<div class="col-sm-10">
<input name="street_address" type="text" class="form-control" placeholder="Street Address">
</div>
</div>
<div class="form-group row">
<label for="city" class="col-sm-2 col-form-label">City / Town</label>
<div class="col-sm-10">
<input name="city" type="text" class="form-control" placeholder="City / Town">
</div>
</div>
<div class="form-group row">
<label for="region" class="col-sm-2 col-form-label">State / Province / Region</label>
<div class="col-sm-10">
<input name="region" type="text" class="form-control" placeholder="State / Province / Region">
</div>
</div>
<div class="form-group row">
<label for="zip" class="col-sm-2 col-form-label">Postal Code</label>
<div class="col-sm-10">
<input name="zip" type="text" class="form-control" placeholder="Postal Code">
</div>
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary text-center">Submit</button>
</div>
</form>
<br>
@include('layout.errors')
</div>
</div>
@endsection
ошибки.blade.php
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
Контроллер:
<?php
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
class UserController extends Controller
{
// Register
public function create(Request $request)
{
// Form Validation
$this->validate(request(), [
'name' => 'required',
'email' => 'required|email|unique:users',
'phonenumber' => 'required|regex:/^[0-9]{10}$/|unique:users',
'street_address' => 'required',
'city' => 'required',
'region' => 'required',
'zip' => 'required',
'password' => 'required|confirmed'
]);
// Create and save the user.
$user = User::create([
'name' => request('name'),
'email' => request('email'),
'phonenumber' => request('phonenumber'),
'street_address' => request('street_address'),
'city' => request('city'),
'state' => request('state'),
'zip' => request('zip'),
'password' => bcrypt(request('password'))
]);
// Sign in the user.
//auth()->login($user);
return redirect('/test');
}
// Login
public function store()
{
if (auth()->attempt(request(['email', 'password'])))
{
return redirect('/');
}
else
{
return Redirect::back()->withErrors(['Invalid email or password!']);
}
}
// Logout
public function destroy()
{
auth()->logout();
return redirect('/user/login');
}
}