Я использую laravel 5.5 с базой данных MySQL.
Вот мой текущий код:
private function setValidationRule(Request $request,$actionCode) {
$rules = [];
$rules['odaydate'] = 'required|unique:empofday|date_format:"d-m-Y"';
return $rules;
}
public function postCreate(Request $request) {
//Previous code...
$validator = \Validator::make($request->all(),
$this->setValidationRule($request,$actionCode),
$this->setCustomValidationRuleMsg($request,$actionCode)
);
$validator->setAttributeNames($this->setValidationAttributeNames());
if ($validator->fails()) {
$view = $viewPri->withErrors($validator)->withInput();
} else {
$view = $viewSec;
}
return $view;
}
Данные проводки от клиента: DD-MM-YYYY = '15 -10-2018 '.
Тогда я хочу проверить уникальность даты с помощью правила:
$rules['odaydate'] = 'required|unique:empofday|date_format:"d-m-Y"';
Да, проверка верна (успех), но sql, сгенерированный laravel, был неверным, чтобы получить уникальность:
select count(*) as aggregate from empofday where odaydate = '15-10-2018'
поэтому результирующий sql будет 0 вместо 1.
Но если я попробую вручную sql со следующим кодом:
select count(*) as aggregate from empofday where odaydate = '2018-10-01'
результирующее значение 1.
Итак, мой вопрос: как установить формат даты для проверки уникальности в базе данных на уровне , используя формат d-m-Y вместо Y-m-d ?
Спасибо за помощь.