我有一個模型Post -> hasAndBelongsToMany -> Tag
CakePHP的測試套件:進口燈具表爲HABTM
爲了測試,我創建了各型號的燈具,例如,對於模型後看起來像這樣
class PostFixture extends CakeTestFixture {
var $import = array('model' => 'Post', 'records' => true, 'connection' => 'fixtures');
}
夾具
所有的一切都爲模型的偉大工程,但是當我嘗試創建爲HABTM關係夾具,用同樣的方法行不通:
class PostsTagFixture extends CakeTestFixture {
var $import = array('model' => 'PostTag', 'records' => true, 'connection' => 'fixtures');
}
由CakePHP生成的SQL如下
CREATE TABLE `service_types_technicals` (
`technical_id` int(20) NOT NULL AUTO_INCREMENT,
`service_type_id` int(20) NOT NULL AUTO_INCREMENT,
`id` varchar(255) NOT NULL, PRIMARY KEY (`id`)) ;
這是不正確的,因爲該表沒有名爲id的字段。
然後,我嘗試這樣做:
class PostsTagFixture extends CakeTestFixture {
var $name = 'PostsTag';
var $import = array('table' => 'posts_tags', 'records' => true, 'connection' => 'fixtures');
}
再次,錯誤,但這次的SQL是:
CREATE TABLE `service_types_technicals` (
`technical_id` int(20) NOT NULL AUTO_INCREMENT,
`service_type_id` int(20) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`service_type_id`)) ;
我在做什麼錯?從另一個數據庫導入has and belongs to many
關係的燈具的正確方法是什麼?
謝謝!
我不知道太多關於這一點,但據我所知,HABTM關係需要一個ID字段。這可能是Cake爲什麼要創建一個 – JohnP 2011-04-04 17:34:31
其次,每個表都有一個id列afaik。 – benjamin 2011-04-05 05:36:02
@JonhP沒錯,把id字段解決了這個問題。你可以將它發佈爲答案,以便我可以將其標記爲已回覆,並且您可以獲得積分嗎?謝謝! – 2011-04-08 11:41:17