在下拉列表中我想找到2个级别的数据。也许我的逻辑是错误的,但是我记得我以前做过这样的事情,唯一的区别是我总是得到一个简单的结果,但是现在,我应该处理一个数组。这是我的代码:
echo $form->dropDownList($model, 'szeriaGyartmanyId', GxHtml::listDataEx(
SzeriaGyartmany::model()->findAllAttributes(
null, true, 'rajz_osszetett_technologia_id IN (:rajz_osszetett_technologia_id) AND keszDb<db', array(
':rajz_osszetett_technologia_id' => RajzOsszetettTechnologia::model()->findAllAttributes(
null, true, 'osszetett_technologia_id = :osszetett_technologia_id', array(
':osszetett_technologia_id' => OsszetettTechnologia::model()->find("name='Horganyzás alatt'")->id
)
)->id
)
)
), array('style' => 'width: auto', 'prompt' => ''));
核心返回一个ID,这没问题,但是第二级会返回一个数组(或对象数组?我不确定)。关键是,这里有可能以某种方式破坏产生的rajz_osszetett_technologia_ids,还是我必须完全不同?我试图将其内爆,但我得到了一个错误:参数必须是一个数组。所以这就是为什么我猜结果是一个对象数组。
我想要实现的目标是否明确?对我来说,以某种方式这样做似乎有点明显,但也许我的逻辑是完全错误的。有人可以指出我正确的方向吗? 非常感谢! BR ç
答案 0 :(得分:0)
GxActiveRecord::findAllAttributes(null,true..)
返回一个只包含所需属性的对象数组。为了获得所需的ID数组,您需要将其包装在GxHtml::listDataEx()
中,然后使用array_keys
仅获取密钥。
echo $form->dropDownList($model, 'szeriaGyartmanyId', GxHtml::listDataEx(
....
':rajz_osszetett_technologia_id' => implode(',',
array_keys(
GxHtml::listDataEx(
RajzOsszetettTechnologia::model()->findAllAttributes(
....
)
)
)
)
....
)
也许自定义查询会比这更简单,更清晰。