【问题标题】:how do you create a select with both value and the label the same from an array in cakephp?如何从 cakephp 的数组中创建一个值和标签相同的选择?
【发布时间】:2011-06-30 07:04:14
【问题描述】:

我在控制器中从表中创建了一个数组:

$tasktemplateResults = $this->Tasktemplate->find('list');

在视图中,我有一个创建下拉列表的表单助手:

echo $this->Form->input('Tasktemplate.id', array('options' => array($tasktemplateResults),'label' => 'Task'));

html输出如下:

<div class="input select">
    <label for="TasktemplateId">Task</label>
    <select name="data[Tasktemplate][id]" id="TasktemplateId"> 
        <option value="1">Test task</option> 
        <option value="2">Second test task</option> 
    </select>
</div>

我想要这个 html 输出:

<div class="input select">
    <label for="TasktemplateId">Task</label>
    <select name="data[Tasktemplate][id]" id="TasktemplateId"> 
        <option value="Test task">Test task</option> 
        <option value="Second test task">Second test task</option> 
    </select>
</div>

如何获得与上图相同的名称和值对?

【问题讨论】:

    标签: html cakephp-1.3


    【解决方案1】:

    您可以向 find 'list' 方法添加参数,以指定用于键和值的字段。

    例子:

        $usernameMap = $this->Article->User->
    find('list', array('fields' => array('User.username', 'User.first_name')));
    

    http://book.cakephp.org/view/1022/find-list

    【讨论】:

    • 在发布这个问题之前,我确实非常仔细地查看了这一点,这不起作用的原因是因为我使用了基于表格动态填充的'options' =&gt; array($tasktemplateResults)
    • 您的选项数组由查找填充。因此,如果您按照我的说明调整您的查找查询,它应该可以正常工作。
    • 谢谢,这很有趣,因为本书没有用多个字段和列表清楚地解释这一点。
    • 对我不起作用。我的选择选项仍然是
    【解决方案2】:

    控制器中的数组

    $tasktemplateResults = $this->Tasktemplate->find('list', array('fields' => array('Tasktemplate.name')));
    

    在视野中

    echo $this->Form->select('task', $tasktemplateResults);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-30
      • 1970-01-01
      • 2019-09-23
      • 2016-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多