$this->addColumn('table_name','column_name','type');
を使用しています、テーブル内の7位でカラムを追加するには、最後の列が追加されます。私は列を追加する場所を言及することができる方法はありますか?または、after columnキーワードを使用して、新しいカラムをexapmle、passwordカラムの後に追加します。 私はabooutの移行を学んだYii Doc
$this->addColumn('table_name','column_name','type');
を使用しています、テーブル内の7位でカラムを追加するには、最後の列が追加されます。私は列を追加する場所を言及することができる方法はありますか?または、after columnキーワードを使用して、新しいカラムをexapmle、passwordカラムの後に追加します。 私はabooutの移行を学んだYii Doc
これは動作するはずです!
$this->addColumn('table_name', 'column_name', 'type AFTER column6');
例:
$this->addColumn('tbl_posts', 'email', 'VARCHAR(150) AFTER `name` ');
$this->addColumn('tbl_posts', 'phone', 'string AFTER `email` ');
$this->addColumn('{{%user}}', 'username',
$this->string()->notNull()->unique()->after('id')
);
これはうまく動作し、エレガントです。ありがとう! –
これはすべき*方法です。 – christian
ありがとう!それは:)私は文書でそれを行う方法を見つけることができませんでした、あなたがYiiのために参照する他の何かがあります。最後の質問ですが、移行クラスの名前がm120920_041119_update_users_aboutのように見える場合は、$ this-> addColumn( 'users'、 'about_ME'、 'string after AFTER password')を追加できます。 _MEはクラスの名前でなければなりませんか? –
それは動作しますが、それはトリッキーに動作します。 YiiがSQLを作成するときには、単に 'type'値をsqlにコピーして渡すだけで、 'AFTER a_column'という構文は有効なSQLを生成します。もちろん、私は今から使用することができてうれしく、この方法を教えてくれてありがとう。 – realtebo
多くのものは、Yii(そしてPHP(そしてプログラミング(と人生)))の世界で "トリック"によって作られています。 –