Есть проблема с вставкой 1399/06/31
в SQL
с помощью laravel, на самом деле, если день месяца на другое число меньше, чем 31
, проблем нет.
примечание: - Я использую персидский календарь, а не григорианский.
public function create(Request $request)
{
$transferMoney = new TransferMoney();
$transferMoney->sender_id = Input::get('sender_account_id');
$transferMoney->receiver_id = Input::get('receiver_account_id');
$transferMoney->payment_amount = Input::get('payment_amount');
$transferMoney->rate = Input::get('rate');
$transferMoney->date = Input::get('pr_date');
$transferMoney->description = Input::get('transfer_description');
$transferMoney->save();
}
3 ответа
Лучшее решение вашей проблемы - это изменить типы вашей даты с date на varchar в базе данных SQL, потому что дата Shamsi является неизвестной датой в SQL, и SQL не может поддерживать этот тип. как ниже:
public function create(Request $request)
{
$transferMoney = new TransferMoney();
$transferMoney->sender_id = Input::get('sender_account_id');
$transferMoney->receiver_id = Input::get('receiver_account_id');
$transferMoney->payment_amount = Input::get('payment_amount');
$transferMoney->rate = Input::get('rate');
$date = explode('/', Input::get('pr_date'));
if($date[1] <= 9 ) {
$date[1] = '0'.$date[1];
} else {
$date[1] = $date[1];
}
if($date[2] <= 9) {
$date[2] = '0'.$date[2];
} else {
$date[2] = $date[2];
}
$transferMoney->date = $date[0].'-'.$date[1].'-'.$date[2];
$transferMoney->description = Input::get('transfer_description');
$transferMoney->save();
}
Я думаю, что вы не можете сохранить в таблице SQL любой формат, кроме обычного григорианского календаря. Вместо этого вы можете сохранить как дату по григорианскому календарю, а при извлечении использовать средство доступа для постоянного извлечения как персидской даты.
$transferMoney->date = Carbon::parse(Input::get('pr_date'))->locale('UTC+6');
Нашел пакет для перевода персидского времени, не знаю нужен он вам или нет. https://github.com/morilog/jalali
Вы можете использовать этот или желаемый формат в TransferMoney.php после импорта:
public function getYourDateFieldAttribute($value)
{
return Jalalian::fromDateTime($value);
}
Тип столбца базы данных Должен быть тип «дата», а не «дата-время», а тип ввода также должен быть типом «дата».
Тогда просто напишите:
$ transferMoney-> date = $ request-> pr_date;
Он должен работать.
Похожие вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.