Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cakephp 1.3 HABTM问题!:D_Php_Database_Cakephp - Fatal编程技术网

Cakephp 1.3 HABTM问题!:D

Cakephp 1.3 HABTM问题!:D,php,database,cakephp,Php,Database,Cakephp,嘿,我对cakephp有这个问题,基本上我有一个Has和Many(HABTM)模型关系 我的模型是Categroy和Project 带上所有的项目数据就可以了,结果是[0]['project'],[1]['project']…等等 但当我使用关系并在categories controller中拉出具有特定类别的项目时,我会得到这些结果[0](所有项目数据在[0]中,而不是[0]['project']),[1](项目数据和相关模型信息)当我使用一个元素视图文件来呈现我的项目时,这真的把我的代码搞乱

嘿,我对cakephp有这个问题,基本上我有一个Has和Many(HABTM)模型关系

我的模型是Categroy和Project

带上所有的项目数据就可以了,结果是
[0]['project']
[1]['project']
…等等

但当我使用关系并在categories controller中拉出具有特定类别的项目时,我会得到这些结果[0](所有项目数据在[0]中,而不是[0]['project']),[1](项目数据和相关模型信息)当我使用一个元素视图文件来呈现我的项目时,这真的把我的代码搞乱了。有没有任何方法可以同时为项目控制器和类别控制器返回[0]['Project']?谢谢你,克里斯

嗨,对不起,如果我的例子不清楚

我有项目和类别

当我从项目模型中的项目控制器中提取项目列表时,我得到的结果是以下格式

[0]['Project'] = array(data...);
[1]['Project'] = array(data...);
[2]['Project'] = array(data...);
这就是数据提取的方式,这对我来说很好,但当我使用类别控制器中的HABTM关系从类别模型中提取每个cetegory页面的项目时,这就是我的数据返回的方式

['Project'][0] = array(data...);
['Project'][1] = array(data...);
['Project'][2] = array(data...);
正如您所看到的,这有点紧张,因为我想保留1个元素视图文件来显示我的项目,到目前为止,我的视图文件打印的数据如下

<?php print $project['Project']['title']; ?> //data is returned [x]['Project']
<?php print $project['Feature']['title']; ?>
//返回数据[x]['Project']
根据HABTM关系返回数据的方式,我需要这样做

<?php print $project['title']; ?> //because data is returned ['Project'][x]
<?php print $project['Feature']['title']; ?>
//因为数据返回['Project'][x]

有人能帮忙吗?谢谢

这也让我很沮丧。我希望有一组元素可以用于呈现“主要”查找结果以及相关的查找结果

这就是我目前处理结果格式差异的方式

例如,在“项目”模型上调用find并希望呈现相关的“任务”列表时,我通过一个函数在元素中运行结果的“任务”键,如下所示:

echo $this->element('tasks/index',array(
    'data'=>make_primary('Task',$data['Task'])
));
我的“make_primary”函数如下所示:

function make_primary($alias,$data) {
    $d = array();
    foreach($data as $item) {
        $related = array();
        foreach($item as $key => $val) {
            if(!is_numeric($key) && is_array($val)) {
                $related[$key] = $val;
                unset($item[$key]);
            }
        }
        $d[] = array_merge(array($alias=>$item), $related);
    }
    return $d;
}

这将返回一个新数组,就像它是“主”查找查询的结果一样。

您可以发布一些用于提取数据的代码吗?请发布模型定义以及Juhana请求的代码。非常感谢Jamia,我曾想过这样做,但对未来的速度感到好奇,因为它会再次在结果中循环,如果cakephp在默认情况下会这样做,那就好了,谢谢你会尝试一下,并让你知道它是如何进行的:Dgreat-如果你想到或找到更好的方法,我很有兴趣听到它!