Model 如何获取cakePHP模型->;将条件与关联模型一起使用的字段方法?

Model 如何获取cakePHP模型->;将条件与关联模型一起使用的字段方法?,model,cakephp-1.3,field,recursive-query,model-associations,Model,Cakephp 1.3,Field,Recursive Query,Model Associations,我有一个问题,我需要从一条记录中检索一个字段,不使用相关模型,而使用使用相关模型的条件 例如: Categories {name, id} Keywords {name, id} Articles {title, text, id, keyword_id, category_id} 我想在Article.category\u id=3时检索第一个Articles.id等 只要条件不使用外部模型,使用Model->field('Model.field',array(conditions)

我有一个问题,我需要从一条记录中检索一个字段,不使用相关模型,而使用使用相关模型的条件

例如:

Categories {name, id}  
Keywords {name, id}  
Articles {title, text, id, keyword_id, category_id}
我想在
Article.category\u id=3时检索第一个
Articles.id

只要条件不使用外部模型,使用
Model->field('Model.field',array(conditions))
就可以工作。(
$this->Model->recursive=4
不起作用)

使用
Model->find('first',array(conditions))
可以很好地工作,除了我还获得了我不需要和不想要的关联数据,通过禁用关联模型比较的功能来限制递归结果

有什么建议吗

编辑 我的问题(除了调试器不好外:-)是通过使用
model->read
方法限制递归来解决的。 但是,长期来看,可能是使用可包含的行为。

该方法将
字段
参数作为其选项之一。您还可以设置
recursive
参数,以确保获得适当级别的关系

$this->Article->find('first', array('recursive' => -1, 'fields' => array('Article.id'), 'conditions' => array('Article.category_id' => 3)));
根据您的OP,以下内容将检索您想要的内容,而无需加入任何关系

$this->Article->find('first', array('recursive' => -1, 'fields' => array('Article.id'), 'conditions' => array('Article.category_id' => 3)));

如果您的要求高于上述要求,您可以查看或。但从您所描述的情况来看,以上是合适的解决方案。这对我来说太过分了。

我会使用
Model->find()
来限制加载的关联,并使用field参数将结果限制到所需的字段。

(1)谢谢,(2)我在这里犯了一个错误,调试了错误的行。。。(3) 它不会工作-因为递归=-1不允许使用关联模型的条件。正常级别或递归有什么问题?你担心关系的数量吗?记录的数量与关系无关。如果要限制记录的数量,请传递
limit
属性。此外,
first
将只返回1个结果。因此,您所做的与我的建议不同。同样,问题不在于模型本身,而是相关模型返回大量数据。鉴于您的模型描述,上述代码不会关联任何模型,而只关联文章。此外,它最多将返回1个结果。如果你仍然有问题,我鼓励你用更多的细节来编辑你的问题。