Изучаю Laravel. Сейчас разбираю тему с валидацией данных и у меня не получается вывести ошибки.
Я создал класс запроса:
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ContactRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name'=>'required',
];
}
public function messages()
{
return [
'name.required' => 'Er, you forgot your name!',
];
}
}
Так же создал контроллер, для страницы.
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Requests\ContactRequest;
use App\Http\Controllers\Controller;
use Validator;
class ContactController extends Controller
{
public function store(ContactRequest $request) {
return view('default.contact',['title'=>'Contacts']);
}
public function show()
{
return view('default.contact',['title'=>'Contacts']);
}
}
Так же добавил нужные провайдеры в свойство $middleware
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
];
Создал 2 роутера:
Route::get('/contact',['uses'=>'Admin\ContactController@show','as'=>'contact']);
Route::post('/contact',['uses'=>'Admin\ContactController@store']);
(Пробывал так же объединять их в группу middleware => web (тоже не помогло))
Сама форма выглядет так:
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="form-area">
<form method="post" action="{{ route('contact') }}">
{{ csrf_field() }}
<div class="form-group">
<input type="text" class="form-control" value="{{ old('name') }}" id="name" name="name" placeholder="Name">
</div>
<div class="form-group">
<input type="text" class="form-control" value="{{ old('email') }}" id="email" name="email" placeholder="Email">
</div>
<div class="form-group">
<input type="text" class="form-control" value="{{ old('site') }}" id="site" name="site" placeholder="site">
</div>
<div class="form-group">
<textarea class="form-control" type="textarea" name="text" id="message" placeholder="Message" maxlength="140" rows="7">{{ old('text') }}</textarea>
<span class="help-block"><p id="characterLeft" class="help-block ">You have reached the limit</p></span>
</div>
<input type="submit" id="submit" name="submit" class="btn btn-primary">
</form>
</div>
Но в итоге, при отправке формы, сообщения об ошибках не выводятся. Подскажите пожалуйста куда копать? Спасибо.