Это то, что у меня есть, это просто сохранение значений несколько раз, хотя у меня есть правила проверки уникальности в таблице «встреч» в базе данных. Может ли кто-нибудь предложить мне, как я могу хранить только уникальную дату в моем столе. Заранее спасибо.Проверка ввода даты в базу данных в 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');
}
Вау! Довольно странно! assign_day - это имя столбца в таблице, где assign_date является именем поля ввода. Да, ваше решение сработало, но я не понял причину этого. Спасибо большое!!. – score
Это потому, что валидатор ожидает, что имя * полей * проверяется (которое находится в массиве 'Input'), но у вас нет поля' assign_day' ... поэтому он ничего не проверяет. Кроме того, правило 'unique' проверяет базу данных, используя имя поля ввода в качестве имени столбца, если вы не указали иначе. Поэтому, если вы сохранили свое имя поля как 'assign_date', вы можете в качестве альтернативы сделать' 'assign_date '=>' required | unique: tasksments, assign_day''. – damiani
Быстрая справка, связанная с указанным выше вопросом: Как я могу проверить уникальную уникальную функцию «assign_date» с уникальными пользователями? Средство, в ту же дату, что и 01/01/2010, является уникальным для User1 и User 2! Как насчет следующего: $ rules = array ( 'assign_day' => 'required | unique: tasksments, user_id' ); – score