gpt4 book ai didi

php - CakePHP 格式在 View 中找到 ('all' ) 到 ('list' )?

转载 作者:行者123 更新时间:2023-12-03 22:45:33 25 4
gpt4 key购买 nike

有没有办法将 $this->find('all') 数组格式化为 View 中的 $this->find('list') ?我问的原因是我可以将该新数组传递给表单助手选项,然后使用 $this->find('all') 数组来构建我需要的一些额外的东西?

Array ( 
[0] => Array ( [School] => Array ( [id] => 0 [name] => Nature [address] => 112 Main [max_students] => 25 [application_level] => 5 ) )
[1] => Array ( [School] => Array ( [id] => 1 [name] => Math [address] => 112 Smith [max_students] => 25 [application_level] => 0 ) )
[2] => Array ( [School] => Array ( [id] => 2 [name] => Art [address] => 112 Lane [max_students] => 25 [application_level] => 0 ) )
)

所以这是我在执行 find('all') 时得到的数组。我想构建数组,使其看起来像:
Array (
[0] => 'Nature'
[1] => 'Math'
[2] => 'Art'
)

这通常由 $this->find('list') 函数完成。虽然我想要整个数组的原因是因为我需要将 application_level 添加到 $this->Form->input() 函数中。这是因为我需要添加附加应用程序级别的类选项,所以我只显示基于先前选择的应用程序级别的节目。

编辑:我不能只做 $this->find('list', [insert parameters here?]); 吗?我只是不明白您如何设置附加参数?

最佳答案

如果您的查询不是过于复杂并且不会返回过多的结果,只需运行两次(一次用于查找全部,一次用于查找列表)。

查找所有,列出,首先,就您传入的参数而言,所有内容都相同。例如:

$this->Model->find('all', array(
'conditions' => array(
'field' => 500,
'status' => 'Confirmed'
),
'order' => 'id ASC'
));

...您从字面上替换 alllist .在你的情况下,可能最容易做两次,每次一次。像这样:
$parameters = array(
'conditions' => array(
'field' => 500,
'status' => 'Confirmed'
),
'order' => 'id ASC'
);

$alldata = $this->Model->find('all', $parameters);
$listdata = $this->Model->find('list', $parameters);

否则,您可以遍历它并填充您自己的列表:
$list = array();

foreach($findall as $row) {
$id = $row['id'];
$name = $row['name'];
$list[$id] = $name;
}

$this->set('listdata', $list);

对您的问题的简短回答是,没有快速、简单的方法来选择 all list来自同一个查询,但您可以通过将参数(条件、顺序等)作为预定义数组传递来重新使用它们,或者填充您自己的列表。

关于php - CakePHP 格式在 View 中找到 ('all' ) 到 ('list' )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19920094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com