即使查询与结果匹配,CakePHP 2.2 find也会返回空数据

即使查询与结果匹配,CakePHP 2.2 find也会返回空数据,cakephp,model,find,Cakephp,Model,Find,我有一个全新的烘焙控制台项目,在这个项目中,当我调用model->find函数时,我有两个行为不同的模型 用户控制器 公共功能指数{ $this->User->recursive=0; $this->set'users',$this->paginate; } 文字控制器 公共功能指数{ $this->Word->recursive=0; $this->set'words',$this->paginate; } 查询调试工具包 从“words”中选择“Word”.*`作为“Word”,其中“Wor

我有一个全新的烘焙控制台项目,在这个项目中,当我调用model->find函数时,我有两个行为不同的模型

用户控制器

公共功能指数{ $this->User->recursive=0; $this->set'users',$this->paginate; } 文字控制器

公共功能指数{ $this->Word->recursive=0; $this->set'words',$this->paginate; } 查询调试工具包

从“words”中选择“Word”.*`作为“Word”,其中“Word”.“日化”=“A”和“Word”.“pubblicata”=“1”按“Word”排序。`parola`ASC限制10 影响10 第10行数 在这两种情况下,所检查的查询都会影响行,但是如果调试分页结果,WordsController不会返回任何结果,而用户给出的结果是正确的

Word模型没有关系,我尝试将模型名称更改为Term,得到了相同的结果

我还尝试将CakePHP内核降级为2.1.4。没什么

这个问题有什么可能的原因吗?Word是某种保留关键字吗?如何调试

我明白了

我在单词表UTF8中有一些包含特殊字符的文本,如òèìù。Cake删除了所有包含这些字符的结果。我试着用e代替è,神奇的是,这张唱片可以在蛋糕中找到

希望我5小时的头痛能帮助别人

我明白了

我在单词表UTF8中有一些包含特殊字符的文本,如òèìù。Cake删除了所有包含这些字符的结果。我试着用e代替è,神奇的是,这张唱片可以在蛋糕中找到


希望我5小时的头痛能帮助别人

正确答案遵循已接受的答案。您应该在数据库配置中设置编码: 在我的配置中,我有:

public $default = array(
     'datasource' => 'Database/Mysql',
                'persistent' => false,
                'host' => 'localhost',
                'login' => 'giuseppe',
                'password' => 'pass',
                'database' => 'db'
                'prefix' => '',
                //'encoding' => 'utf8',

    );

你看到编码键了吗?尝试取消注释或将其设置为正确的编码,瞧

正确答案遵循已接受的答案。您应该在数据库配置中设置编码: 在我的配置中,我有:

public $default = array(
     'datasource' => 'Database/Mysql',
                'persistent' => false,
                'host' => 'localhost',
                'login' => 'giuseppe',
                'password' => 'pass',
                'database' => 'db'
                'prefix' => '',
                //'encoding' => 'utf8',

    );

你看到编码键了吗?尝试取消注释或将其设置为正确的编码,瞧

引用上述问题中的一条评论

检查您的模型和AppModel,看看是否有任何后续发现。afterFind调用必须在末尾返回$results数据集

function afterFind($results, $primary = false)  {
    //some code here..
    return $results; //I had this commented out for some reason
    //and it generated the same issue.
}

引用上述问题中的评论

检查您的模型和AppModel,看看是否有任何后续发现。afterFind调用必须在末尾返回$results数据集

function afterFind($results, $primary = false)  {
    //some code here..
    return $results; //I had this commented out for some reason
    //and it generated the same issue.
}

你说你对术语和单词有同样的问题,对吗?这将使您关于word受保护的问题无效…etcPaste您在视图中用于显示结果的代码?并粘贴您的调试代码?鉴于我只有一个调试$字;数据库中是否有条目?是的,两个表都有数百行。正如我所写的,查询返回行,但Cake无法识别它们……您说过您对术语的问题与对Word的问题相同,对吗?这将使您关于word受保护的问题无效…etcPaste您在视图中用于显示结果的代码?并粘贴您的调试代码?鉴于我只有一个调试$字;数据库中是否有条目?是的,两个表都有数百行。正如我所写的,查询返回行,但Cake无法识别它们……这解决了我的问题。我也有空白结果。我已经取消了注释并将其设置为“utf8”,记录现在可见。这解决了我的问题。我也有空白结果。我已经取消了它的注释,并将其设置为“utf8”,记录现在可见。