2016-07-08 2 views
0

Y a-t-il un moyen dans propel2 de vérifier si la colonne est autoincrement? Mon hypothèse serait d'utiliser quelque chose de similaire àPropeler - vérifier si la colonne est auto-incrémentée

$query = new UsersQuery(); 

$columns = $query->getTableMap()->getColumns(); 

foreach ($columns as $column) { 
    $column->isAutoIncrement(); //method does not exist 
} 

Cependant, rien qui fait vérifier si la colonne est autoincrement n'existe pas lorsque vous parcourez le résultat de getColumns. Que pourrait-on faire dans ce cas?

Répondre

1

La valeur par défaut AUTO_INCREMENT est spécifique au pilote. Vous ne pouvez pas attendre une méthode dédiée pour cela. Il pourrait être AUTOINCREMENT dans MySQL, SEQUENCE dans PostgreSQL, etc ...

La chose que je suggère est de trouver la clé primaire, car je m'attends à ce que vous fassiez une recherche dans cette colonne.

Une autre solution consiste à prendre le code CREATE TABLE à partir des migrations et à l'analyser manuellement. Mais il n'y a pas de méthode intégrée pour cela. Même si vous exécutez getDefaultValue() vous ne recevrez pas AUTO_INCREMENT, mais NULL pour cette colonne.