1
1
据我所知,对于紧随其后的查询操作,contain()语句只工作一次。后续查询将需要自己的contain()语句,例如
我不建议在beforefind()中使用contain(),因为它用于修改特定的返回。在每个查询之前使用它很快就成为第二种特性,在那里您将对返回的数据有很好的控制。 如果您对有限回报有广泛的要求,您可以在模型的关联中设置它。 |
2
0
1)您的模型beforefind()应该接受一个参数$querydata,如果执行find(),则返回true;如果在forefind之前中止,则返回false。通常,beforefind($querydata)方法将修改$querydata数组并返回它。
2)试图保持持久的$contain有点奇怪。containable显然包含assocations,以便获取额外/附加信息。您的虚拟字段应在普通find()操作中返回。如果要限制返回的字段,则应在模型或模型关联中定义这些字段。
containable将为您快速重新绑定关联,但您应该通过模型关联(belongsto、$hasmany、$hasone等)定义默认字段/条件。 另一种选择是实际创建反映您试图获取的数据的模型方法,这是一个非常基本的示例:
然后从控制器调用这些方便方法,就像 $this->员工->ActiveEmployees(); 您还可以选择将参数传递给employee::activeeemployees();这是一个附加$conditions数组,或者$contain与标准选项合并的选项。 |
Silva · cakephp如何做好查询 9 年前 |
Gabriel Santos · 使用cakeHP重定向Htaccess 12 年前 |
BadHorsie · CakePHP 1.3-添加额外属性以选择菜单选项 12 年前 |
Vinayak Phal · CakePHP如何为pdf文件创建路由 12 年前 |