В моей базе данных у меня есть поле даты в формате Y-m-d H:i:s
, Я хочу, чтобы эта дата всегда была больше, чем этот момент при добавлении нового элемента в базу данных. Я проверяю это с помощью валидатора Laravel:
Validator::make->($request->all(), [
'date'=>'date|after:'.date(Y-m-d H:i:s)
]);
Проблема в том, что моя страница на разных языках, и каждый язык имеет разные форматы даты. Иногда я хочу формат по умолчанию, иногда я хочу d.m.Y H:i:s
, и так далее..
Я сделал переводы на разные языки в resources/lang
каталог. Для проверки я перевел существующий validation.php
файл, но проблема в том, что я не знаю, как форматировать дату, если это возможно даже при таком подходе. На данный момент моя дата всегда в формате по умолчанию, с которым я сравниваю свои данные. мой validation.php
файл выглядит так:
<?php
return [
'after' => 'The :attribute must be a date after :date.'
];
Мой вопрос сейчас, как отформатировать :date
приписывать. Любая помощь будет оценена.
Я уже пробовал:
'after' => 'The :attribute must be date after'.date(format, strtotime(':date'))
Но это ничего не делает.
Даты всегда будут передаваться в функцию PHP strtotime.
Чтобы сделать дату всегда больше, чем этот момент, вы можете просто использовать термин сейчас.
Laravel сделать это довольно просто, как показано ниже.
Validator::make->($request->all(), [
'date'=>'date|after:now'
]);
Других решений пока нет …