Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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条件查找_Php_Mysql_Cakephp_Models_Model Associations - Fatal编程技术网

CakePHP条件查找

CakePHP条件查找,php,mysql,cakephp,models,model-associations,Php,Mysql,Cakephp,Models,Model Associations,我正在写一个简单的博客应用程序。我处理的是两种模式,BlogPost和blogcontegory 它们都使用单独的表彼此具有HABTM关系 我在BlogPost模型中编写了一个函数来加载某个类别中的所有帖子,但它会不断产生数据库错误 public function getRecentFromCategory($category, $offset, $limit){ return $this->find('all', array( 'order' => 'B

我正在写一个简单的博客应用程序。我处理的是两种模式,
BlogPost
blogcontegory

它们都使用单独的表彼此具有HABTM关系

我在BlogPost模型中编写了一个函数来加载某个类别中的所有帖子,但它会不断产生数据库错误

public function getRecentFromCategory($category, $offset, $limit){
     return $this->find('all', array(
         'order' => 'BlogPost.date desc',
         'offset' => $offset,
         'limit' => $limit,
         'conditions' => array('BlogCategory.id' => $category)
     ));
 }

为什么我不能根据相关类别设置条件?

您需要在模型之间设置
归属关系,这意味着您的博客文章可以属于博客类别

假设您的博客帖子在您的博客帖子模型中有一个“blog\u category\u id”字段:

public $belongsTo = array(
    'BlogCategory' => array(
        'className' => 'BlogCategory',
        'foreignKey' => 'blog_category_id'
    )
);

然后,您的查找应该能够按照您想要的方式基于类别进行筛选。

它显示了查询,但显然没有在查询中链接到BlogCategory。它只是突然有了一个WHERE blogcontology.id=etc,但它从未建立关系我只是觉得像在相关模型中搜索这样简单的事情应该更简单。这真的是唯一的方法吗?好吧,如果你想使用Cake语法,这是唯一的方法。在
HABTM
关系中,外键在联接表中,因此创建
belongsTo
关系是不可能的。糟糕的是,我没有看到他的帖子中的HABTM部分。尽管如此,您还是可以使用类似这样的语法(如您在OP注释中发布的图书链接所述),并设置联接表。