我有一个问题,我需要从一个记录中检索一个字段,没有关联的模型,同时使用使用的条件--关联的模型?
示例:
Categories {name, id}
Keywords {name, id}
Articles {title, text, id, keyword_id, category_id}我想检索第一个Articles.id,当Article.category_id=3等。
使用Model->field('model.field',array(conditions))是有效的,只要条件不使用外部模型。($this->Model->recursive=4不起作用)。
使用Model->find('first', array(conditions))可以很好地工作,除了我也可以得到我不需要或不想要的关联数据,通过禁用使用关联模型比较的能力来限制递归结果。
有什么建议吗?
编辑
我的问题,除了是糟糕的调试器:-)是通过限制递归使用model->read方法解决的。然而,长期而言,可能是使用可控制的行为。
发布于 2011-05-15 19:17:42
查找()方法将fields参数作为其选项之一。您还可以设置recursive参数,以确保您获得了适当级别的关系。
根据您的操作程序,以下内容将在不加入任何关系的情况下检索您想要的内容。
$this->Article->find('first', array('recursive' => -1, 'fields' => array('Article.id'), 'conditions' => array('Article.category_id' => 3)));如果您的需求比上面的要求更强,您可以查看绑定模型或可控制行为。但从你所描述的,以上是适当的解决方案。这对海事组织来说太过分了。
发布于 2011-05-15 19:20:52
我将使用Model->find()和可容纳行为来限制加载哪些关联,而字段参数仅将结果限制在所需的字段中。
https://stackoverflow.com/questions/6010586
复制相似问题