2014-10-30 2 views
0

Это то, что у меня есть, это просто сохранение значений несколько раз, хотя у меня есть правила проверки уникальности в таблице «встреч» в базе данных. Может ли кто-нибудь предложить мне, как я могу хранить только уникальную дату в моем столе. Заранее спасибо.Проверка ввода даты в базу данных в Laravel

public function store() 
     { 
      date_default_timezone_set('Australia/Melbourne'); 
      $date = date('Y/m/d', time()); 
      $todDate = new DateTime($date); 
      $dateFormated = $todDate->format('Y-m-d'); 

     $input = Input::all(); 

     $rules = array(
      'appoint_day' => 'required|unique:appointments' 
     ); 

     $validator = Validator::make($input, $rules); 

     if($validator->passes()) 
     { 
      $schedule = new Appointment; 
      $appoint_day = Input::get('appoint_date'); 

      if(strtotime($appoint_day) - strtotime($dateFormated) >= 0) 
      { 
       $schedule->user_id = Auth::user()->id; 
       $schedule->appoint_day = $appoint_day; 
       $schedule->save(); 
      } 
     } 
     else 
     { 
      echo 'failed'; 

     } 
return View::make('admin.professions.appointments'); 
    } 

ответ

1

Ваше значение Input называется appoint_date, но вы проверки поле, называемое appoint_day, которые, предположительно, не существует. Измените имя своего поля на appoint_day, и валидатор должен работать правильно.

+0

Вау! Довольно странно! assign_day - это имя столбца в таблице, где assign_date является именем поля ввода. Да, ваше решение сработало, но я не понял причину этого. Спасибо большое!!. – score

+1

Это потому, что валидатор ожидает, что имя * полей * проверяется (которое находится в массиве 'Input'), но у вас нет поля' assign_day' ... поэтому он ничего не проверяет. Кроме того, правило 'unique' проверяет базу данных, используя имя поля ввода в качестве имени столбца, если вы не указали иначе. Поэтому, если вы сохранили свое имя поля как 'assign_date', вы можете в качестве альтернативы сделать' 'assign_date '=>' required | unique: tasksments, assign_day''. – damiani

+0

Быстрая справка, связанная с указанным выше вопросом: Как я могу проверить уникальную уникальную функцию «assign_date» с уникальными пользователями? Средство, в ту же дату, что и 01/01/2010, является уникальным для User1 и User 2! Как насчет следующего: $ rules = array ( 'assign_day' => 'required | unique: tasksments, user_id' ); – score

Смежные вопросы