加入两个以上的表cakephp

时间:2011-12-08 22:53:27

标签: mysql cakephp cakephp-appmodel

我正在编写一个显示住房单元的应用程序(它们由提供租用的用户列出)。我试图弄清楚如何在Cakephp中定义我的单元模型。我有三个表:单位,复合体和用户。

我知道单位$ belongsTo'用户',但它也属于'复杂',因为每个复合体都可以有很多单位。我可以写这个吗?

<?php
  class Unit extends AppModel {
        var $name='Unit';
        var $belongsTo=array('User', 'Complex');

} ?&GT;

我还应该补充一点,我不确定如何为User和Complex定义我的类,因为用户可以拥有许多Complexes,而Complex可以拥有许多用户。如果一个人拥有它也可以属于它拥有的东西很多?这是HABTM吗?我很困惑(新手)。

1 个答案:

答案 0 :(得分:0)

听起来用户有很多复合体,而且复杂属于许多用户。 这是一个HABTM。

用户可以拥有多个单位,但一个单位只能有一个用户。这是一个hasMany和一个belongsTo。

现在对于单位和复合体之间的关系,如果一个复合体可以有很多单元,那么这就是一个hasMany。我猜这是事实。我还猜测一个单元属于一个复合体以及一个用户。这可以。单位可以同时属于用户和复合体而不会出现问题或需要HABTM。

所以我在上面为你定义了你的关系。您似乎已经知道如何定义hasMany和belongsTo,所以请确保按照本页所述设置HABTM :(请记住,您需要在数据库中添加一个额外的表,并且不要忘记添加任何数据库您需要其他关系的列。

http://book.cakephp.org/view/1044/hasAndBelongsToMany-HABTM

祝你好运。