Cake Php Read函数将结果检索为1维数组

时间:2012-05-21 05:54:19

标签: cakephp cakephp-1.3 cakephp-appmodel

Cake Php Read函数将结果检索为简单数组

$result = $this->Model->read('id, name, title', $id);

结果为

Array
(
    [Model] => Array
    (
        [id] => 1
        [name] => test
        [title] => New Head title
    )

)

有任何方法可以直接从查询中检索结果数组,如下所示

Array
    (
        [id] => 1
        [name] => test
        [title] => New Head title
    )

不使用变量的任何临时存储。

3 个答案:

答案 0 :(得分:2)

只需通过Set::extract调用运行结果,如下所示:

$result = $this->Model->read('id, name, title', $id);
$result = Set::extract('/Model', $result);

Set是一个非常强大的类,我建议you read on it。 :) 欢呼声。

答案 1 :(得分:0)

除了CakePHP纯度(同意其他海报)

找到('list')你在寻找什么?

$result = $this->Model->find('list', array('fields' => array('id', 'name', 'title'),        'conditions' => array('id' => $id), 'recursive' => 0    ));

答案 2 :(得分:0)

除非您要破解Cake核心,否则Cake将始终使用额外的模型键在内部返回结果。所以"不使用任何临时存储变量" 几乎是不可能的,如果你的意思是"速度优化" (在引号中,因为它几乎没有任何区别)。

您可以使用以下内容使其正常工作:

$result = current($this->Model->read('id, name, title', $id));

您可以覆盖模型的read方法,因此它始终在内部执行此操作(不推荐,有一天会让您咬人)。您可以在AppModel中执行此操作以全局执行此操作。