CakePHP一对多组合框

时间:2010-08-14 20:27:46

标签: php cakephp cakephp-bake

嘿我有两个模型User和City,其中一个用户属于一个城市,一个城市有很多用户。 在城市桌上,我有city_id和city_name。

我使用过二手蛋糕烘焙并创建了用户模型,当我添加新用户时,城市字段下的组合框显示城市的ID而不是名称。

我尝试了几种方法来显示城市的名称而不是id,但我失败了。

2 个答案:

答案 0 :(得分:1)

您没有提到您尝试过的内容,但通常您会使用模型的displayName属性来设置应该使用记录的“标题”的字段。在你的情况下,我想:

$this->displayName = 'city_name';

请注意,在1.3中,属性名称似乎是displayField而不是displayName

答案 1 :(得分:1)

Cake需要特定的表格布局才能使自动化工作。罗布解释了如何绕过它。但是如果你想避免编写额外的代码行,你应该考虑相应地组织你的表。

CREATE TABLE `cities` (
  `id` int(11) AUTO_INCREMENT NOT NULL,
  `name` varchar(25) NOT NULL,
  PRIMARY KEY (`id`)
)

当您烘焙此模型时,Cake会自动使用name作为显示名称。这将适用于您创建的每个表。此外,如果您对表使用id,它将自动知道如何将其作为city_id等其他表中的外键引用。