私はこのテーブルCakePHP。別の主キーを使用してテーブルのモデルテストを行うにはどうすればよいですか?
CREATE TABLE myexamples.problems (
id INT,
name VARCHAR(45) NULL ,
pk_id INT AUTO_INCREMENT PRIMARY KEY
);
を持っている。しかし、私は、CakePHPでモデルをテストしようとすると、テーブルが2つの自動インクリメント属性を持っているので、それが失敗しました。次のクエリ
CREATE TABLE `test_suite_problems` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) DEFAULT NULL,
`pk_id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`pk_id`)
)
DEFAULT CHARSET=latin1, COLLATE=latin1_swedish_ci, ENGINE=InnoDB;
昇給このエラー:
"1075: Incorrect table definition; there can be only one auto column and it must be defined as a key"
私はモデルクラス
<?php
class Problem extends AppModel {
var $name = 'Problem';
var $displayField = 'name';
var $primaryKey='problems';
}
?>
に持って
しかし、私は、フィールドIDが自動インクリメントを持っていないようにする方法がわかりませんテーブル構造を変更することはできません。
はい、私は$ primaryKey = pk_keyを持っていましたが、これをコピーすると$ primaryKey = problemsが間違いでした。 最後に問題を特定します。 problem_fixture.phpがbakeで作成された場合、var $ fieldsにはauto_numeric、idフィールド、pk_idフィールドの2つのフィールドがあります。私はidのautonumericを削除し、それぞれを更新して問題なく動作させます – Marcelo
これはまさに私があなたに言ったことです。 – burzum