我的模型与其他表/模型有很多关系,如果我使用包含参数,例如在一个模型的结果中按字段排序,查询结果中的所有其他表都缺失,并且必须手动编写包含参数,如何我可以在不手动编写数据的情况下获取所有相关模型数据吗?
$data = $this->Cv->find('first',
array(
'contain' => array('Cv_experience' => array('order' => 'Cv_experience.start_year desc'))));
答案 0 :(得分:0)
听起来你一直依赖于模特的recursive
财产。一旦您使用'包含',那些曾经自动进入的模型不再适用,对吧?
答案是,您应该使用recursive
或contain
,而不是两者。如果您正在使用contain
,则应将递归设置为OFF($recursive = -1;
)。
至于使用哪个,强烈建议不要使用recursve
。在AppModel中将其设置为-1,并在您需要其他数据时使用可包含行为。除了一个简单的博客应用程序之外,递归是一种不好的做法,我相信甚至可以在Cake 3中完全删除。
订购注意事项:您无法按包含的型号订购。 '含有'创建多个查询,因此 - 如果您想要执行您尝试的操作,则需要使用JOIN。