2012-02-04 51 views
1

我想创建一个if then语句,只显示数组中的值时才显示。Yii关系,数组检查是否存在值

鉴于两个表地址和球员,我有以下关系

'displayAddress' => array(self::HAS_MANY, 'Address', 'PlayerId', 
         'condition'=>array('IsHome=:home', 'IsWork=:wok'), 
         'params' => array(':hom'=>'Y', ':wok'=>'N')), 

现在我要检查,看看是否球员有任何地址的播放器视图它仅仅是他们的家,而不是他们的工作。

我曾尝试设置数组函数,并检查在视图以及in_array()和array_key_exists()中做isset,但我一直无法解决它。

+0

你是什么意思,“任何地址,只有他们的家,而不是他们的工作。” ?你想检查两个地址是否不同? – 2012-02-04 19:46:43

+0

正如在我定义的关系的条件/参数中所述。我只想在玩家至少有一个Home-Yes和Work-No的地址时才返回一个值 – enfield 2012-02-04 22:49:00

回答

2

您拥有的关系应仅返回IsHome = Y和IsWork = N的情况。这是否按预期工作?如果没有,请尝试:

'displayAddress'=>阵列(自:: HAS_MANY, '地址', 'PlayerId', '条件'=> '肖姆=:家庭和IsWork =:炒锅', “PARAMS '=> array(':hom'=>'Y',':wok'=>'N')),