Ran*_*all 3 php select cakephp
我是Cake的新手.我已经设置了一些东西,相关的是"用户"和"配置文件"表,控制器,模型和视图.在我profiles/add看来,我正在尝试输出一个select输入,其值为user.id和选项文本为user.username.最终,价值user.id将被保存profile.user_id.
我已阅读了大量文档,并成功设置了select从user表中输出选项,但它同时使用user.id了值和选项文本.
控制器:
$this->set('users', $this->Profile->User->find('list'));
Run Code Online (Sandbox Code Playgroud)
视图:
echo $this->Form->input('user_id');
Run Code Online (Sandbox Code Playgroud)
看起来这种事情是常规的,所以如果我完全忽略它,请随意回答文档的链接.
谢谢!
成功设置了select以从用户表中输出选项,但它使用user.id作为值和选项文本.
find('list')默认情况下,将使用主键作为键,将模型displayField作为值.
如果模型没有一个明确的displayField,但有一个名为场title或name蛋糕将自动选取这个领域,否则将无法猜测,只是使用的主键字段-这是正在发生的事情的问题.
但是,您只需在find('list')通话结果中指定所需的字段即可.因此:
class User extends AppModel {
public $displayField = 'username';
}
Run Code Online (Sandbox Code Playgroud)
然后使用:
$users = $this->User->find('list');
Run Code Online (Sandbox Code Playgroud)
$users = $this->User->find('list', array(
'fields' => array('id', 'username')
));
Run Code Online (Sandbox Code Playgroud)
在这两种情况下 - 结果将是例如:
array(
1 => 'firstuser',
...
76 => 'AD7six'
)
Run Code Online (Sandbox Code Playgroud)