我在yii1中创建了一个依赖的下拉列表但是我总是得到一个错误的htmlspecialchars()期望参数1是字符串,给定的对象
这是控制器动作代码
public function actionDistrictList() {
$id = (int)$_POST['province'];
$data = Tblsudistricts::model()->findAll('province_id=1');
Yii::app()->session['districtlist'] = $data; //save created list to session
echo CHtml::tag('option', array('value' => ''), CHtml::encode('[select one]'), true);
foreach ($data as $value => $name){
echo CHtml::tag('option', array('value'=>$value),CHtml::encode($name),true);
//echo CHtml::tag('option', array('value' => $value), CHtml::encode($name), true);
}}
可能出现什么问题
答案 0 :(得分:2)
此处,在您的代码中
foreach ($data as $value => $name){
echo CHtml::tag('option', array('value'=>$value),CHtml::encode($name),true);
$value
是一个索引,$name
是一个对象,您必须使用其参数
例如:
Chtml::encode($name->district_name)
Instaed of:
CHtml::encode($name)
答案 1 :(得分:0)
Abhishek's answer是正确的。但是,value
也存在问题。 $value
是$data
数组中对象的索引,而不是id。
看起来你期待value => name
的{{1}}数组。如果是这种情况,您应该通过CHtml::listData
函数传递$data
。
您也可以使用CHtml::listOptions
$data
循环
foreach