spLinker中condition的问题

#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