0

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
    )

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

4

3 回答 3

2

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

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

Set 是一个非常强大的类,我建议你阅读它。:) 干杯。

于 2012-05-22T07:21:15.347 回答
0

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

你可以让它简单地工作:

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

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

于 2012-05-21T10:13:06.613 回答
0

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

find('list') 你在找什么?

$result = $this->Model->find('list', array('fields' => array('id', 'name', 'title'),        'conditions' => array('id' => $id), 'recursive' => 0    ));
于 2012-05-21T09:50:07.333 回答