嘿我有两个模型用户和城市,其中一个用户属于一个城市,一个城市有很多用户。 在city table上我有city_id和city_name。CakePHP一对多组合框
我已经使用过使用过的蛋糕烘烤并创建了用户模型,当我添加一个新用户时,城市字段下的组合框显示城市的ID而不是名称。
我试过几种方法来显示城市的名称,而不是id,但我失败了。
嘿我有两个模型用户和城市,其中一个用户属于一个城市,一个城市有很多用户。 在city table上我有city_id和city_name。CakePHP一对多组合框
我已经使用过使用过的蛋糕烘烤并创建了用户模型,当我添加一个新用户时,城市字段下的组合框显示城市的ID而不是名称。
我试过几种方法来显示城市的名称,而不是id,但我失败了。
你没有提到你试过的东西,但通常你会使用模型的displayName
属性来设置应该使用记录的“标题”的字段。在你的情况,我会想:
$this->displayName = 'city_name';
注意,在1.3中,它看起来像属性名称displayField
而非displayName
。
Cake需要一个特定的表格布局以使自动化工作。 Rob解释了如何解决这个问题。但是如果你想避免编写额外的代码行,你应该考虑组织你的表。
CREATE TABLE `cities` (
`id` int(11) AUTO_INCREMENT NOT NULL,
`name` varchar(25) NOT NULL,
PRIMARY KEY (`id`)
)
当你烤这个模型时,Cake会自动使用name
作为显示名称。这将适用于您创建的每个表。此外,如果您使用id
作为表格,它将自动知道如何将其引用为其他表格的外键,如city_id
。
默认情况下,CakePHP将使用'标题',假定存在这样的字段,并且未定义$ this-> displayField。 – Wayne 2010-08-17 02:26:38