【问题标题】:CakePHP one to many Combo boxCakePHP 一对多组合框
【发布时间】:2010-08-14 20:27:45
【问题描述】:

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

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

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

【问题讨论】:

    标签: php cakephp cakephp-bake


    【解决方案1】:

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

    $this->displayName = 'city_name';
    

    请注意,在 1.3 中,属性名称看起来像是 displayField 而不是 displayName

    【讨论】:

    • CakePHP 将默认使用 'title',假设存在这样的字段,并且 $this->displayField 没有定义。
    【解决方案2】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-02
      相关资源
      最近更新 更多