@evgen9586
Backend-dev. Лублу Enterprise и не люблю понты)

Как создать int[] столбец при помощи ORM laravel?

Копаюсь в легаси проекте. Ларавел версия 5. Postgres 14 версии. int[] давно как поддерживает.

В миграции пытаюсь создать столбец на чисто SQL
DB::statement('ALTER TABLE '.$needle_table.' ADD COLUMN parents int[]');

Артисан отдаёт интересную ошибку.
In AbstractPlatform.php line 454:

  Unknown database type _int4 requested, Doctrine\DBAL\Platforms\PostgreSQL100Platform may not support it.

Уже весь гугл обпылесосил и ничего не нашёл кроме как какого-то аля решени сделать
DB::connection()->getDoctrineSchemaManager()->getDatabasePlatform()->registerDoctrineTypeMapping()

Странно это в общем. Как всё-таки создать в 5-той версии ларавела int[]?
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
@evgen9586 Автор вопроса
Backend-dev. Лублу Enterprise и не люблю понты)
\DB::connection()->setSchemaGrammar(new class extends PostgresGrammar {
            protected function typeInt_array(\Illuminate\Support\Fluent $column)
            {
                return 'int[]';
            }
        });
//В миграции потом
$table->addColumn('int_array', 'parents')->nullable();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы