代码之家  ›  专栏  ›  技术社区  ›  harryg

CakePHP输出一个选择输入,用于从联接表中拾取值

  •  0
  • harryg  · 技术社区  · 12 年前

    我已经加入了我的两张桌子 clients risk_codes 彼此之间 clients.risk_code_id 是一把外键 for risk_codes.id .

    在“客户端”的编辑视图中,我使用HTML Helper输出了一个表单。例如,添加要编辑的输入 clients.name 我会用 echo $this->Form->input('name');

    鉴于此 风险代码 是一个单独的表/模型吗?我如何输出一个选项为 risk_codes.name 并且这些值是 risk_codes.id ?

    这些表的链接方式如下:

    Client belongsTo RiskCode
    RiskCode hasMany Client
    
    1 回复  |  直到 12 年前
        1
  •  1
  •   ndm    12 年前

    在您的 RiskCode 模型确保 displayField 设置为 null name (后者是默认值之一):

    public $displayField = 'name'; // or null;
    

    在控制器中设置 list 视图的风险代码:

    $this->set('riskCodes', $this->Client->RiskCode->find('list'));
    

    在视图中,只需引用适当的外键字段名称:

    echo $this->Form->input('risk_code_id');
    

    CakePHP将使用模型自动创建一个适当的选择列表 id 显示字段 列表中的字段值设置为 riskCodes .

    附言。许多类似的问题都在 Cookbook ,也可以通过使用CakePHP来计算 bake 控制器和视图。

    推荐文章