Как получить значение столбца по умолчанию с помощью Laravel? - PullRequest
0 голосов
/ 13 февраля 2019

Я создаю собственную команду ремесленника, которая должна иметь доступ к значениям по умолчанию для базы данных для определенных столбцов.Я не могу использовать массив атрибутов.Поэтому вместо этого мне нужен другой способ.

Я пытался использовать Schema.Мне удалось получить таблицу DB::table($table) и имена столбцов Schema::getColumnListings($table), но не значения по умолчанию.

Есть ли другой способ получить значения по умолчанию?

1 Ответ

0 голосов
/ 13 февраля 2019

Laravel Schema Builder возвращает имена столбцов только по проекту.Но вы можете использовать тот же подход, который Laravel использует для внутреннего использования, выполнив оператор базы данных:

$results = DB::select('
    select column_default 
    from information_schema.columns 
    where 
        table_schema = ? 
        and table_name = ?
', [$database, $table]);

// Flatten the results to get an array of the default values
$defaults = collect($results)->pluck('column_default'))

Приведенный выше пример работает для базы данных MySQL, но вы можете увидеть подходы для других баз данных в пространстве имен Illuminate\Database\Schema\Grammarsисходный код Laravel путем поиска метода compileColumnListing.

...