@Blud73

Из-за чего в Laravel постоянно появляется ошибка валидации?

Битый час бьюсь. Подскажите.
Имеется функция проверки формы:
public function registration()
	{
			if($_POST['type'] === 'company'){
				$validator = Validator::make(
				  array('email' => 'email|unique:users'),
				  array('name' => 'required|min:3|max:20'),
				  array('lastname' => 'required|min:3|max:20')
				  );

			}elseif($_POST['type'] === 'user'){
				$validator = Validator::make(
				  array('email' => array('email','unique:users')),
				  array('name' => array('required')),
				  array('lastname' => array('required', 'min:3', 'max:20'))
				);

			}

			if ($validator->fails()) {
				  $messages = $validator->messages();
				  print_r($messages);
				  print_r($_POST);
				  return View::make('user.registration_error', array('type' => $_POST['type'], 'data' => $_POST, 'error' => $messages));
				}
				 echo 'lol';

	}


Имеется сама форма:
<form action="/registration" method="post" class="form-horizontal">
	  <fieldset>
	    <legend>Регистрация для компаний</legend>
	    <div class="control-group">

	      <label class="control-label" for="input01">Имя</label>
	      <div class="controls">
	        <input name="name" type="text" class="input-xlarge" id="input01">
	      </div><br>

	      <label class="control-label" for="input01">Фамилия</label>
	      <div class="controls">
	        <input name="lastname" type="text" class="input-xlarge" id="input01">
	      </div><br>

	      <label class="control-label" for="input01">E-mail</label>
	      <div class="controls">
	        <input name="email" type="email" class="input-xlarge" id="input01">
	        <p class="help-block">На него прийдет код подтверждения.</p>
	      </div>

	      <label class="control-label" for="input01">Компания</label>
	      <div class="controls">
	        <input name="company-name" type="text" class="input-xlarge" id="input01">
	        <p class="help-block">Название компании которую вы представляете</p>
	      </div>
          <input name="type" type="hidden" value="company">
	      <label class="control-label" for="input01">Пароль</label>
	      <div class="controls">
	      <input name="pass" type="password" class="input-xlarge" id="input01">
	      </div> <br>

	      <div class="controls">
	        <input name="pass_confirmation" type="password" class="input-xlarge" id="input01">
	        <p class="help-block">Еще раз</p>
	      </div>

	      <button class="btn btn-primary" type="submit">Зарегестрироваться</button>
	    </div>
	   </fieldset>
	</form>


Проблема в том, что Поле Name всегда с ошибкой, дальше он не проверяет. Оставляй пустое поле или заполненное, оно всегда с ошибкой.
  • Вопрос задан
  • 2639 просмотров
Решения вопроса 1
Вместо $_POST['type']используйте Input::get('type')
Не правильно используете Validator.
Пример правильного использования:
$validator = Validator::make(Input::all(), array(
    'email' => 'email|unique:users',
    'name' => 'required|min:3|max:20',
    'lastname' => 'required|min:3|max:20'
));


Подробнее узнать можно здесь
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы