Изменить enum поле через Laravel миграцию

Метод миграций Laravel change() не поддерживают изменение столбцов типа enum, поэтому используется обычный SQL через методDB::statement. Например:

DB::statement("
    ALTER TABLE bree7e_cris_publications 
    CHANGE COLUMN language language
    ENUM('russian','english','german','spanish','italian','mongolian','chinese','kazakh') 
    NOT NULL 
    DEFAULT 'russian' 
    AFTER edition;
");

Похожие записи

Laravel migration: Specified key was too long

В Laravel 5.4 кодировкой базы данных по умолчанию стала utf8mb4. Это повлияло на приложения, использующие MySQL v5.7.7 и меньше. Во время выполненния миграций, может вывалитсья ошибка Specified key was too long.

27 августа 2017 г. в Laravel

Про сохранение полей даты в Eloquent

Если в моделе не указать

protected $dates = ['something_at'];

То надо делать формат

// Поле типа date 
'something_at' => Carbon::now()->addDays(7)->format('Y-m-d'),

// Поле типа date 
'something_at' => Carbon::now()->addDays(7)->format('Y-m-d H:i:s'),

Eloquent collection groupBy Carbon

use Carbon\Carbon;
...

$projectsGroupedByYear = $projects->groupBy(function($p) {
    return Carbon::parse($p->start_year_date)->format('Y');
});