我是Cake的新手.我已经设置了一些东西,相关的是“用户”和“配置文件”表,控制器,模型和视图.在我的个人资料/添加视图中,我正在尝试输出一个选择输入,其值为user.id,选项文本为user.username.最终,值user.id将保存在profile.user_id中.
我已阅读了大量文档,并成功设置了select以从用户表中输出选项,但它使用user.id作为值和选项文本.
控制器:
$this->set('users', $this->Profile->User->find('list'));
视图:
echo $this->Form->input('user_id');
看起来这种事情是常规的,所以如果我完全忽略它,请随意回答文档的链接.
谢谢!
解决方法:
successfully set up the select to output the options from the user tables, but it uses the user.id as both the value and the option text.
find(‘list’)默认使用主键作为键,模型的displayField作为值.
如果模型没有显式的displayField但是有一个名为title或name的字段,Cake会自动选择这个字段,否则它不会猜测并只使用主键字段 – 这就是问题中发生的事情.
但是,您可以在find(‘list’)调用的结果中指定所需的字段.因此:
设置模型displayField
class User extends AppModel {
public $displayField = 'username';
}
然后使用:
$users = $this->User->find('list');
明确选择字段
$users = $this->User->find('list', array(
'fields' => array('id', 'username')
));
在这两种情况下 – 结果将是例如:
array(
1 => 'firstuser',
...
76 => 'AD7six'
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。