Cakephp 仅在关联模型上使用条件查找

Cakephp 仅在关联模型上使用条件查找,cakephp,Cakephp,我在cake 2.4中使用可控制行为。我有两个表格-页面和页面翻译。页面有许多页面需要翻译 因为页面可以使用不同的语言,所以pages表中只有数字(id、stats、image等)。翻译的页面有自己的id、页面id、名称、slug、区域设置、描述等 我的问题是,我只能从翻译的页面(slug和locale的组合)中唯一选择数据。如果我要编写一个单独的查询来选择PageID表单pages\u,并通过指定的slug和locale进行翻译,则会得到1个结果。然后,我将在pages表中按该页面id进行搜索

我在cake 2.4中使用可控制行为。我有两个表格-页面和页面翻译。页面有许多页面需要翻译

因为页面可以使用不同的语言,所以pages表中只有数字(id、stats、image等)。翻译的页面有自己的id、页面id、名称、slug、区域设置、描述等

我的问题是,我只能从翻译的页面(slug和locale的组合)中唯一选择数据。如果我要编写一个单独的查询来选择PageID表单pages\u,并通过指定的slug和locale进行翻译,则会得到1个结果。然后,我将在pages表中按该页面id进行搜索,并再次得到一个结果。我想在1个查询中实现这一点。这可能吗?每当我在cake中放入一个查询,而没有在主表上指定条件时,它总是说:

.... FROM pages_translated WHERE pages_translated .locale = eng AND         
      pages_translated.slug = 'www.mypage.com' AND pages_translated.page_id` = (1)  

最后一部分,page_id=1会破坏所有内容,但我想cake会将其放在那里,以确保只选择了一行。我如何指示它不写最后一条语句?

在页面列表模型中,您是否设置了与页面模型的belongsTo关系?请发布您的控制器代码,向我们展示您是如何编写您的发现的。是的,我向协会声明了以下内容。在我的控制器中,我只是这样做:$this->Page->find('first',array('contain'=>array('Languages'=>array('conditions'=>array('Languages.locale'=>eng','Languages.slug'=>www.mypage.com'),);