【问题标题】:How to change cakephp selection field after bake relational table ?烘焙关系表后如何更改 cakephp 选择字段?
【发布时间】:2014-10-22 03:44:36
【问题描述】:

我有两个表用户和区域。区域与用户有关系。所以我在区域表中添加了 users_id。烘焙后我得到了很好的输出。但是在区域中添加表单用户字段在选择框中显示 users_id。在这里我想显示 users_name。如何更改它?

这是型号代码

MadAreas' => array(
            'className' => 'MadAreas',
            'foreignKey' => 'users_id'
)

在控制器中

$madAreas = $this->MadArea->Users->find('list');

在add.ctp中

 echo $this->Form->input('users_id',array( 'label' => false, 'class'=>'form-control' ));

【问题讨论】:

    标签: cakephp cakephp-2.3


    【解决方案1】:

    尝试在 find 语句中指定您想要的字段:

    $madAreas = $this->MadArea->Users->find('list', array(
                                                    'fields' => array('id','username')
                                                    )
                                           );
    

    按照@mponos-george 的回答中提到的那样更改模型中的$displayField 无论如何都应该这样做,只要确保在更改模型值后清除缓存文件即可。

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 我用过 public $displayField = 'username';但没有任何变化。
      • 把这个$madAreas = $this->MadArea->Users->find('list');改成$users = $this->MadArea->Users->find('list');
      • 这也是错误的echo $this->Form->input('users_id',array( 'label' => false, 'class'=>'form-control' ));正确的做法是echo $this->Form->input('user_id',array( 'label' => false, 'class'=>'form-control' ));没有复数
      • 我认为应该有一个条件来申请。在这里我可以看到 id,这意味着它是查找 id 列表。我必须按名称分配该查找列表。我有逻辑但不要不知道在哪里申请。
      • 尝试在查找中指定您想要的字段:$madAreas = $this->MadArea->Users->find('list', array('fields' => array('id','username'))); $displayField 无论如何都应该这样做,所以它可能是您的模型缓存。清除所有缓存文件并重试它应该可以工作
      【解决方案3】:

      在渲染视图之前,您是否在控制器中设置了数据?

      $this->Set(compact('madAreas'));
      

      【讨论】:

        猜你喜欢
        • 2018-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-25
        • 2014-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多