spLinker中condition的问题
发布于:2022-01-17 09:50:54
#1 coolcool1265
$classid=$this->spArgs("classid");
$aModel->linker[0]['condition']="classid=$classid";
$res=$aModel->spLinker()->findAll();
已经在linker中设定了condition,为什么$res中显示的仍然是全部的记录?
虽然记录中,有的结果的map没有值,有的有值,但要吧所有结构全都查出来,未免开销也太大了吧。而且我们需要的只是关联表中“classid=$classid”的条件。
2011-05-30 18:40:48
#2 coolcool1265
怎么帖子没有编辑功能了?
补充说明一点:
·查找的结果是数据库中全部的结果;
·凡是符合linker[0]['condition']的结果,都有相对应的map值;
·凡是不符合条件的结果,除了map值为空外,其他值是正常的。
2011-05-30 18:43:15
#3 jake
看手册,楼上是对$linker里面的condition理解错误了。
http://speedphp.com/splinker-hasone.html$linker里面的condition,是“对关联结果的限制”,也就是说,它是针对关联表的“结果”,而不是对“主表”的结果,所以,如果你直接在主表上面findAll,关联结果是被限制了(有的map没值),但是主表的结果
没有被限制(findAll),所以还是会有全部的值返回。
建议这种情况直接写SQL,会更有效和快捷。
2011-05-30 21:10:47
#4 coolcool1265
谢谢jake
确实对condition没有很好的理解,只是偶尔看到手册上有。呵呵 谢谢哈
2011-05-30 23:17:09