假设我有一个索引操作,我想获得一个项目列表:
$this->Project->find('all', array('order' => 'Project.modified DESC', 'conditions' => array('Project.user_id' => 1)));
效果很好并返回以下数组:
Array ( [0] => Array ( [Project] => Array ( [id] => 2 [title] => test project ) ) [1] => Array ( [Project] => Array ( [id] => 1 [title] => first project ) ) )
如何修改find函数,以便按以下格式返回数组:
Array ( [projects] => Array ( [0] => Array ( [id] => 2 [title] => test project ) [1] => Array ( [id] => 1 [title] => first project ) ) )
谢谢!
答案 0 :(得分:0)
您可以使用Set::combine()
实用程序方法执行此操作。我已经将它用于类似的方式:
public function groupByMenu() {
return Set::combine (
$this->find (
'all',
array (
'conditions' => array ( 'NavItem.active' => 1 ),
'order' => 'NavMenuItem.display_order'
)
),
'{n}.NavItem.title',
'{n}',
'{n}.NavMenu.id'
);
}
上面的代码采用了一组导航项目并重新组织它们,以便按照它们显示的菜单进行分组。
答案 1 :(得分:0)
结果是否在“项目”而不是“项目”下是不是很清楚,但如果你不喜欢它在[0]之下,我相信你可以使用PHPs array_shift:< / p>
$result = $this->Project->find('all', array('order' => 'Project.modified DESC', 'conditions' => array('Project.user_id' => 1)));
$result = array_shift($result);
结果将是:
Array ( [Project] => Array ( [id] => 2 [title] => test project ) ) [1] => Array ( [Project] => Array ( [id] => 1 [title] => first project ) )