请教relation关联深度为2的情况。

A B C 3个Model。

A:'bs'=>array(self::HAS_MANY,'B','a_id','condition'=>'??.ss='正常''),

B:'c'=>array(self::HAS_ONE,'C','b_id','on'=>'??.xx=: xx'),

当我在action中执行$as=A::model()->with('bs.c'=>array('condition'=>"ff is not null",'params'=>array('xx'=>$xx)))->findAll();后。在view中循环$as as a 输出的时候,a->bs是否会按照在action使用的条件读取数据?

谢谢帮忙!

你这样查询的话,你的条件是给c设置的。如果你需要给bs设置,需要用with(array('bs'=>…, 'bs.c'=>…))

恩  是给c限定的,但我想通过c的限定来限定b,而且这个限定会在我用a->bs引用的时候还是保持这种限定。

不是太理解。你试过with(array('bs'=>…, 'bs.c'=>…))了么?另外,你可以加上together()看看,因为你这个查询涉及到根据关联对象过滤。

假设A是部门,B是人员,C是考勤记录。

如果我要获得今天A部门的考勤人员 迟到的列表,正常的列表

应该这样写吗?还是我概念不对?请指教。

with()后加上together()试试。