2016-10-14 12 views
1

私はここで、データベースの移行を使用してテーブルを作成しようとしています私のコードは持つ問題

public function change() 
    { 
     $table = $this->table('tags'); 
     $table->addColumn('title', 'string', ['default' => null,'limit' => 255,'null' => false,]); 
     $table->addColumn('created', 'datetime', ['default' => null,'null' => false,]); 
     $table->addColumn('modified', 'datetime', ['default' => null,'null' => false,]); 
     $table->addUniqueKey('title');   // Giving error **Fatal error: Call to undefined method Phinx\Db\Table::addUniqueKey()** 
     $table->create(); 
    } 

である私はユニークなtitle列を設定したいが、私はそれをしようとすると、それが与えますエラー:

Fatal error: Call to undefined method Phinx\Db\Table::addUniqueKey()

答えて

0

は、主キーを追加します。http://book.cakephp.org/3.0/en/orm/schema-system.html

public function change() { 
     $t = new Table('posts'); 
     $t->addColumn('id', 'integer') 
      ->addColumn('author_id', 'integer') 
      ->addColumn('title', 'string') 
      ->addColumn('slug', 'string'); 

     // Add a primary key. 
     $t->addConstraint('primary', [ 
      'type' => 'primary', 
      'columns' => ['id'] 
     ]); 

     // Add a unique key 
     $t->addConstraint('slug_idx', [ 
      'columns' => ['slug'], 
      'type' => 'unique', 
     ]); 

     // Add index 
     $t->addIndex('slug_title', [ 
      'columns' => ['slug', 'title'], 
      'type' => 'index' 
     ]); 

     // Add a foreign key 
     $t->addConstraint('author_id_idx', [ 
      'columns' => ['author_id'], 
      'type' => 'foreign', 
      'references' => ['authors', 'id'], 
      'update' => 'cascade', 
      'delete' => 'cascade' 
     ]); 
    } 
+0

を参照してください。今では、このエラーを与える: "キー"有効な列オプション –

+0

ではありません。プライマリキーではなくプライマリキーを設定したいのですが、 –

+0

でも、プライマリキーではなくユニークキーを設定する必要があります。両方の間に大きな違いがあります –