Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 03.03.2019 17:04:48

Как создать вывод ошибок валидации?

в шаблоне перед формой прописан вывод ошибок валидации

@if(count($errors) > 0)
    <div class="alert alert-danger">
      <ul>
        @foreach($errors->all() as $error)
          <li>{{ $error}}</li>
        @endforeach 
      </ul>
    </div>
@endif

в контроллере следующее

class ContactController extends Controller
{
   
    public function show(Request $request,$id=FALSE) {	
    
    	if($request->isMethod('post')) {
			$rules = [
			
				'name'=>'required|size:5',
				//'email'=>'required|email'
			
			];
			$this->validate($request,$rules);
			dump($request->all());
		}
		return view('default.contact',['title'=>'Contacts']);
	} 
}

в web прописано

Route::match(['get','post'],'/contact/{id?}',['uses'=>'Admin\ContactController@show','as'=>'contact']);

Не видит ошибки скрипт. Соответственно не выводит их. В чем тут проблема? Код простой.
Метод show обрабатывает и get и post запросы это чтобы было совсем просто.

Изменено SZV (03.03.2019 17:06:18)

Не в сети

#2 06.03.2019 14:59:12

Re: Как создать вывод ошибок валидации?

Насколько я понимаю, у тебя не отправляются данные с ошибкой в твой шаблон. То есть логика проста - если ошибка, то прерываем выполнение и идём показывать ошибку. Иначе выполняем код дальше.
Пример мой -
Контроллер.

if( $timeFrom > $timeTo ){
	// Правило изменил, так как не соответствие полей на форме, но требуется что б ошибочные поля подсвечивались, и было понятное сообщение 
	$rule = ['period_from'=>' ','period_to'=>' ','message'=>'Дата в поле "период от" должна быть меньше даты "до"'];
	return \Redirect::back()->withInput()->withErrors($rule);
}

Шаблон.

	@if ($errors->all())
		<div class="alert alert-danger">
			@foreach($errors->all() as $error)
			<p>{{ $error }}</p>
			@endforeach
		</div>
	@endif

Изменено Alexandr5 (06.03.2019 15:00:51)

Не в сети

#3 07.03.2019 06:17:50

Re: Как создать вывод ошибок валидации?

Нет не работает такой код. Хотя, конечно, ход Ваших мыслей мне нравится. Тут какая-то проблема в сессиях мне так кажется. Потому, что если валидация пройдена сессия сохраняется, если валидация не пройдена сессия не сохраняется. Получается валидация не пройдена и тут же происходит редирект, хотя сначала должна записаться сессия, потом осуществлен вывод ошибок и только потом редирект.

Изменено SZV (07.03.2019 06:27:44)

Не в сети

Подвал раздела