您可能需要的时间执行find()方法
$this->Model-virtualFields['field_sum'] = 'SUM(field)';
$this->Model->find('all', array('fields' => array('Model.field_sum')));
前添加在您的控制器的虚拟域看看哈希::压扁
我觉得菜谱做了解释该函数的一个良好的工作:
http://book.cakephp.org/2.0/en/core-utility-libraries/hash.html
$arr = array(
array(
'Post' => array('id' => '1', 'title' => 'First Post'),
'Author' => array('id' => '1', 'user' => 'Kyle'),
),
array(
'Post' => array('id' => '2', 'title' => 'Second Post'),
'Author' => array('id' => '3', 'user' => 'Crystal'),
),
);
$res = Hash::flatten($arr);
/* $res now looks like:
Array (
[0.Post.id] => 1,
[0.Post.title] => First Post
[0.Author.id] => 1, [0.Author.user] => Kyle
[1.Post.id] => 2, [1.Post.title] => Second Post
[1.Author.id] => 3, [1.Author.user] => Crystal
“姐妹”函数是Hash :: expand - 它将数组恢复到预平衡状态。
当然,你总是可以写一个循环呈现在你喜欢的任何格式的数组,但那不是很“cakeish”
为什么你在单个阵列需要。 –
你想修改CakePHP核心还是打算编写一个插件?你将如何处理一对多的关系? –
您可以使用after-find来做到这一点,或者直接与(现在)一起使用CakePHP返回的内容。你是否有理由超越一致性/方便吗? – AD7six