我有GoodsCats
下一个关系的模型:
public function relations(){
return array(
'GoodsCatsContent' => array(self::HAS_MANY, 'GoodsCatsContent', 'parent_id'),
);
}
现在我想找到所有GoodsCats
元素,但只有一个子元素(带有特定的language_id
):
$cats = GoodsCats::model()->with(
array(
'GoodsCatsContent'=>array(
'on'=>'languages_id = 1'
)
)
)->findAll();
并接收一个数组,其中每个元素就像GoodsCats.id=>GoodsCatsContent.name
:
CHtml::listData(cats, 'id', 'name')
但是现在我遇到了一个错误GoodsCats.name not defined
。当我将GoodsCats
关系设置为self::HAS_ONE 时一切正常,但我无法为整个项目更改它。是否有可能以某种方式将model()->with()设置为使用未定义的关系类型,而是使用特定的关系类型?
更新我的模型规则:
GoodsCatsContent
:
public function rules()
{
return array(
array('parent_id', 'required'),
array('active', 'numerical', 'integerOnly'=>true),
array('parent_id', 'length', 'max'=>10),
array('name, seo_title, seo_keywords, seo_description', 'length', 'max'=>255),
array('short_content, content', 'safe'),
array('id, parent_id, active, name, short_content, content, seo_title, seo_keywords, seo_description', 'safe', 'on'=>'search'),
);
}
GoodsCats
:
public function rules()
{
return array(
array('active, prior', 'numerical', 'integerOnly'=>true),
array('photo', 'length', 'max'=>255),
array('id, photo, active, prior', 'safe', 'on'=>'search'),
);
}