Вставьте дату и время в базу данных, используя Laravel 5.4 - PullRequest
0 голосов
/ 02 июля 2018

Я хочу вставить дату текущего дня и времени, вот мой код:

$test = new Test;

$dt = new DateTime;

$test->date = $dt->format('m-d-y H:i:s');
$test->users_id = Auth::user()->id;
$test->save();

проблема в том, что он не соответствует правильной дате в базе данных, он вставляет:

2007-02-18 09:52:41

1 Ответ

0 голосов
/ 02 июля 2018

Почему вы хотите сохранить его в пользовательском формате, который не определен в вашей базе данных? Неправильная идея на мой взгляд.


Правильное решение по мне :

Я сделаю предположение, что вы храните дату и время в базе данных MySQL как значение TimeStamp со значением по умолчанию null. Примерно так:

$table->timestamp('your-date-column')->nullable();

При попадании в метод контроллера:

public function yourControllerMethod(Request $request)
{
    // Don't forget to import the Carbon namespace
    $dateTime = Carbon::parse($request->your_datetime_field);

    $request['your_datetime_field'] = $dateTime->format('Y-m-d H:i:s');
}

При получении your_datetime_field, проанализируйте его как экземпляр Carbon по умолчанию, используя вот так:

test.php

/**
 * The dates that will be mutated to Carbon instance.
 *
 * @return  array
 */
protected $dates = [
    'your_datetime_field',
];

Теперь, когда вы преобразовали поле в экземпляр Carbon во время выполнения, вы можете редактировать формат даты и времени в соответствии с вашими требованиями.


Не правильное решение:

Предупреждение, я не проверял это, но я думаю, что это должно работать ..

Если вы все еще хотите сохранить его как пользовательский формат в поле базы данных, сохраните его как строковый формат со значением по умолчанию null.

$table->string('your-date-column')->nullable();

А затем приведите его к типу datetime во время выполнения.

/**
 * The attributes that should be cast to native types.
 *
 * @var array
 */
protected $casts = [
    'your_datetime_field' => 'datetime:Y-m-d',
];

Опять же, я бы порекомендовал не идти в неправильном направлении, если вы не знаете, что делаете и каковы последствия.

Вы поняли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...