Cakephp$this->;请求->;数据返回select字段的id,而不是select字段中需要并显示的值
我有一个CakePHP控制器,如下所示:Cakephp$this->;请求->;数据返回select字段的id,而不是select字段中需要并显示的值,php,list,cakephp,view,controller,Php,List,Cakephp,View,Controller,我有一个CakePHP控制器,如下所示: $this->loadModel('Project'); $list2 = $this->Project->find( 'list', array( 'fields' => array('Project.project'), 'conditions' => array('Project.user_id' => $userId) )); $this->set($list2, 'li
$this->loadModel('Project');
$list2 = $this->Project->find( 'list', array(
'fields' => array('Project.project'),
'conditions' => array('Project.user_id' => $userId)
));
$this->set($list2, 'list2');
$this->loadModel('Distance');
if(!empty($this->request->data)){
$this->Distance->create();
if ($this->Distance->save($this->request->data)) {
$this->Session->setFlash('Saved.');
// $this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('FAILED');
}
}else{
// $this->Session->setFlash('test');
}
echo $this->Form->input('Distance.project', array('options' => $list2, 'label' => false, 'empty' => '(choose one)' ;
还有这样一种观点:
$this->loadModel('Project');
$list2 = $this->Project->find( 'list', array(
'fields' => array('Project.project'),
'conditions' => array('Project.user_id' => $userId)
));
$this->set($list2, 'list2');
$this->loadModel('Distance');
if(!empty($this->request->data)){
$this->Distance->create();
if ($this->Distance->save($this->request->data)) {
$this->Session->setFlash('Saved.');
// $this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('FAILED');
}
}else{
// $this->Session->setFlash('test');
}
echo $this->Form->input('Distance.project', array('options' => $list2, 'label' => false, 'empty' => '(choose one)' ;
但我会将项目id而不是项目名称插入数据库。
我在处理字段时从来没有遇到过这样的问题——只是处理一个数据列表
知道为什么会这样吗
$list2 = $this->Project->find( 'list', array(
'fields' => array('Project.project'),
'conditions' => array('Project.user_id' => $userId)
)
);
这是因为$list2自动创建一个ID=>project的列表;当您将其用作表单的输入时,它会自动创建下拉列表以反映这一点。这通常是链接到ID而不是描述的最佳实践,因为ID不会经常更改。不过,下面的内容应该会让您完全得到您想要的:
$list2 = $this->Project->find( 'list', array(
'fields' => array('Project.project','Project.project'),
'conditions' => array('Project.user_id' => $userId)
)
);
这很正常。。。它的$list2和数组。。。选项的值是该数组中的索引 如果只想插入项目名称,则需要将$list2更改为$list2['project_name']。您需要删除或替换$list2的索引
乐:以爱夏克为例。他还为你更改了密码。谢谢,如果我有足够的声誉,我会投票支持你们两人的答案!!!:)