Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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查找函数存在问题-行为不符合要求-返回重复项_Cakephp_Cakephp 1.3 - Fatal编程技术网

CakePHP查找函数存在问题-行为不符合要求-返回重复项

CakePHP查找函数存在问题-行为不符合要求-返回重复项,cakephp,cakephp-1.3,Cakephp,Cakephp 1.3,首先,感谢您的关注。我正在学习CakePHP,并在学习的过程中设置应用程序。我遇到了一个我似乎不知道如何解决的问题 我有一个具有以下功能的物品控制器: function getRelated(){ $relatedarticles = $this->Article->find( 'all', array( 'fields'

首先,感谢您的关注。我正在学习CakePHP,并在学习的过程中设置应用程序。我遇到了一个我似乎不知道如何解决的问题

我有一个具有以下功能的物品控制器:

function getRelated(){
    $relatedarticles = $this->Article->find(
                        'all',
                        array(
                             'fields' => array(
                            'Article.title'
                            ),
                             'limit' => 4,
                             'order' => 'Article.id ASC',
                             'recursive' => 1,
                             'conditions' => array(
                            'Article.category_id =' => '1'
                             )
                             )
                        );

    if (!empty($this->params['requested'])) {
        return $relatedarticles;
    } else {
        $this->set(compact('relatedarticles'));
    }
}
我还使用以下代码设置了一个元素,我可以在整个应用程序中使用该元素:

<div id="articles_view_related">
    Related News
    <?php 
        $relatedarticles = $this->requestAction('/articles/getRelated');
        //debug($relatedarticles);
    ?>
    <ul>
        <?php
            foreach($relatedarticles as $relatedarticle){
        ?>
        <li>
            <?php
                echo $relatedarticle['Article']['title'];
            ?>
        </li>
        <?php
            }
        ?>
    </ul>

</div>

问题是我试图理解的一种不好的关系:

我在articles.php模型文件中有以下关系:

var $belongsTo = array(
        'Category' => array(
            'className' => 'Category',
            'foreignKey' => 'category_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        ),
        'User' => array(
            'className' => 'User',
            'foreignKey' => 'user_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        )
    );
我删除了用户关系,现在它可以很好地解决这个问题,但是在需要用户关系的地方会出现问题。。有人知道为什么吗


[已解决]-请参阅下面的评论…

生成的SQL查询是什么样子的,如果直接在数据库上运行,会产生什么结果?发布SQL输出将有助于其他人调试您的问题。此外,您正在以字符串而不是整数的形式传递category_id。删除引号。我已经用CakePHP调试输出更新了代码。。。我将尝试直接查询sql并发回。谢谢你,如果你找到了一个解决方案,请把它作为答案发布并接受它,这样对其他人会有帮助。可能是反向关系是hasOne关系,但数据库保存了重复的关系。你能发布你的用户、类别和文章模型吗?我会稍后再发布。我肯定需要用户关系,因为任何其他需要它的东西都不会工作。评论只是一个临时的东西,但不是一个解决方案……我通过phpmyadmin检查了数据库,它没有任何问题。如果我的文章模型类中的$belongsTo引用了“User”,则find'all'只返回重复项。我仍然需要这方面的帮助,因为我需要我与“用户”的关系。。。谢谢,我的数据库设置不正确。在我的用户表中,ID设置为Varchar36,当我将其更改为Int-AutoIncrement时,一切都开始正常运行……我不知道ID是如何更改为varchar的。
var $belongsTo = array(
        'Category' => array(
            'className' => 'Category',
            'foreignKey' => 'category_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        ),
        'User' => array(
            'className' => 'User',
            'foreignKey' => 'user_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        )
    );