我想使用CakePHP的find()
方法在返回的查询结果中包含模型名称。
例如,如果我做了
$person = $this->Person->find("first", array(
"conditions" => array (
"Person.id" => $id
)
));
我回来了
Person{id:1, name:Abraham Lincoln}
我想回来
Person{id:1, name:Abraham Lincoln, model: Person}
我是相当前端的。我知道我可以遍历结果并在控制器级别添加这些,但这似乎很乏味,特别是因为我的大多数查询都使用contain()
复杂得多。我想象在CakePHP的核心某处可以添加这种功能,我只是不知道在哪里。
基本上,我正在寻找CakePHP将数据库查询转换为php变量的位置,因此我可以注入我的附加模型值。
我知道我永远不会在我的应用程序中的任何位置使用列名“model
”。我也确定我希望这些信息在我要求它出现在每一个问题中,尽管它可能没什么意义。
答案 0 :(得分:2)
将此添加到您需要的每个模型:
public function afterFind($results, $primary = false) {
foreach($results as $ikey => $item) {
foreach($item as $skey => $subitem) {
if(is_array($subitem))
$results[$ikey][$skey]['model'] = $skey;
else $results[$ikey]['model'] = $skey;
}
}
return $results;
}
不幸的是,当我将它存储在AppModel中时,我无法完成这项工作。