在使用MVC框架时,强烈建议遵循its conventions。所以一些改变可能对你有益。
您正在寻找其“用户”表和“性能”表之间的HABTM(具有和属于许多)关联。我猜测,通过你的表的设计,用户可以有多个habilities,否则你应该检查hasMany关联。
应该是这样的:
表habilities: SELECT * FROM habilities;
+----+------------+----------------------+----------+
| id | category | subcategoy | created | modified |
+----+------------+------------+---------+----------+
| 1 | Programmer | ASP | | |
| 2 | Programmer | PHP | | |
| 3 | Musician | Classical | | |
+----+------------+------------+---------+----------+
表用户: select * from users;
+----+-------+---------------------+---------------------+
| id | name | created | modified | **
+----+-------+---------------------+---------------------+
| 1 | Roy | 2012-08-15 02:52:18 | 2013-01-17 03:25:28 |
| 2 | Ben | 2012-11-10 03:36:12 | 2012-11-10 03:36:12 |
+----+-------+---------------------+---------------------+
为HABTM关系表: SELECT * FROM habilities_users;
+----+-------------+-------------------+----------+
| id | hability_id | user_id | created | modified |
+----+-------------+---------+---------+----------+
| 1 | 1 | 2 | | |
| 2 | 2 | 1 | | |
+----+-------------+---------+---------+----------+
查看habilities_users中的引用列,它们是带有_id后缀的单数以与CakePHP一起使用。
定义模型类也很重要,因为它是您定义所有关联的地方。
app/Model/User。PHP
<?php
class User extends AppModel {
public $hasAndBelongsToMany = array('Hability');
}
应用/型号/ Hability.php
<?php
class Hability extends AppModel {
public $hasAndBelongsToMany = array('User');
}
表habilities_users不需要模型文件,它的行为和属性在其关联的模型的声明暗示。
*使用这些名称也是CakePHP的方式。 [link]
**在每个表格中添加“创建”和“修改”将自动存储每条记录的这些事件。
嗨@Alexandre,请你可以发布你的模型代码,以便我们可以看到你当前的关联? – 2013-05-04 20:43:43