2 votes

Laravel 5.3 Schema::create champ ENUM est VARCHAR

Je viens de créer une nouvelle migration. Après l'avoir exécutée, je vois mon champ type pas de type ENUM . Il dispose d'un Type VARCHAR(255) à la place

Schema::create('payments', function (Blueprint $table) {
          $table->increments('id');
          $table->text('response');
          $table->enum('type', ['apple', 'paypal']);
          $table->smallInteger('flags');
          $table->timestamps();

        });

Quelqu'un peut-il me dire quelle peut en être la raison ? Est-ce que j'ai raté quelque chose, j'ai essayé plusieurs fois - j'ai obtenu le même résultat.

J'utilise PostgreSQL 9.5.4.

4voto

Amit Gupta Points 10448

Depuis le site Laravel code source

protected function typeEnum(Fluent $column)
{
    $allowed = array_map(function ($a) {
        return "'{$a}'";
    }, $column->allowed);
    return "varchar(255) check (\"{$column->name}\" in (".implode(', ', $allowed).'))';
}

Il créera un varchar(255) et ajoutera une contrainte pour qu'elle n'autorise que les chaînes de caractères spécifiées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X