gpt4 book ai didi

php - CakePHP 将模型名称添加到查询返回的信息中

转载 作者:行者123 更新时间:2023-11-29 02:25:50 24 4
gpt4 key购买 nike

我想使用 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}

我相当偏向于前端。我知道我可以遍历结果并在 Controller 级别添加这些结果,但这看起来很乏味,尤其是因为我的大部分查询都使用 contain() 复杂得多。我想在 CakePHP 核心的某个地方可以添加这种功能,我只是不知道在哪里。

本质上,我正在寻找 CakePHP 将数据库查询转换为 php 变量的位置,以便我可以注入(inject)额外的模型值。

我知道我永远不会在我的应用程序中的任何地方使用列名“model”。我也确定我希望在每个查询中都要求提供此信息,尽管它可能毫无意义。

最佳答案

将其添加到您需要的每个模型中:

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 中时,我无法完成这项工作。

关于php - CakePHP 将模型名称添加到查询返回的信息中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22278290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com