При добавлении новой строки поле create_at заполняется с разницей в -3 часа - PullRequest
0 голосов
/ 25 октября 2019

В моем Laravel 5.8 / mysql 5.7.28 под Kununtu 18 у меня проблема с тем, что при добавлении новой строки созданное поле заполнено с разницей в -3 часа. В моем контроле:

public function add_hostel_enquery()
{
    $request     = request();
    $requestData = $request->all();

    $newHostelInquery                   = new HostelInquery();
    $newHostelInquery->creator_id       = ! empty($requestData['creator_id']) ? $requestData['creator_id'] : '';
    $newHostelInquery->hostel_id        = ! empty($requestData['hostel_id']) ? $requestData['hostel_id'] : '';
    $newHostelInquery->full_name        = ! empty($requestData['full_name']) ? $requestData['full_name'] : '';
    $newHostelInquery->email            = ! empty($requestData['email']) ? $requestData['email'] : '';
    $newHostelInquery->phone            = ! empty($requestData['phone']) ? $requestData['phone'] : '';
    $newHostelInquery->info             = ! empty($requestData['info']) ? $requestData['info'] : '';
    $newHostelInquery->start_date       = ! empty($requestData['start_date']) ? $requestData['start_date'] : '';
    $newHostelInquery->end_date         = ! empty($requestData['end_date']) ? $requestData['end_date'] : '';
    $newHostelInquery->request_callback = !empty($requestData['request_callback']) ? "Y" : 'N';
    try {
        DB::beginTransaction();
        $newHostelInquery->save();
        DB::commit();
    ...        

В config / app.php:

'timezone' => 'Europe/Kiev',

и в моей ОС у меня тот же часовой пояс.

База данных создается как:

Schema::create('hostel_inqueries', function(Blueprint $table)
{
    $table->increments('id');
    ...
    $table->timestamp('created_at')->useCurrent();
    $table->timestamp('updated_at')->nullable();
    ...
});

Я знаю, что в строке обновления я исправляю ее с помощью кода:

$hostelInquery->updated_at = Carbon::now(config('app.timezone'));
$hostelInquery->save();

Как заполнить созданный_каталог при вставке?

1 Ответ

0 голосов
/ 26 октября 2019

Я не использую $ table-> timestamps () так же, как предпочитаю устанавливать сервер create_at, поэтому я нашел настройку решения для части mysql:

SET GLOBAL time_zone = '+3:00';

и проверку:

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