Yii CHtml::listdatafindall返回最后一个元素
我有一个下拉列表。在dropdownlist中,我使用listdata从另一个表中检索数据。但奇怪的是,它只得到表中的最后一项Yii CHtml::listdatafindall返回最后一个元素,yii,Yii,我有一个下拉列表。在dropdownlist中,我使用listdata从另一个表中检索数据。但奇怪的是,它只得到表中的最后一项 $form->dropDownList($model,'status_id',CHtml::listData(OrderStatus::model()->findAll(),'status_id', 'status')) chtml::listdata奇怪地只显示了这个array(1){[“”]=>string(9)“Delivered”}而表中有7行/i
$form->dropDownList($model,'status_id',CHtml::listData(OrderStatus::model()->findAll(),'status_id', 'status'))
chtml::listdata
奇怪地只显示了这个array(1){[“”]=>string(9)“Delivered”}
而表中有7行/id,其中Delivered是最后一个条目。其他人怎么了
另一件奇怪的事情是,$model->status\u id实际上是id 1,所以它不应该显示“Delivered”,而应该显示“New”。看看这个:
示例1:为类别生成列表数据
// you can use here any find method you think proper to return your data from db*/
$models = categories::model()->findAll();
// format models resulting using listData
$list = CHtml::listData($models, 'category_id', 'category_name');
print_r($list);
HTML输出(示例):
看看你是否有一个默认的作用域
只需调试OrderStatus::model()->findAll(),看看它是返回7条记录还是只返回1条记录。您的chtml::listdata奇怪地显示出来
数组(1){[“”]=>字符串(9)“已传递”}
是因为在OrderStatus中的所有行的status_id列中必须有相同的条目,根据上述数组,该行为空/空
在下面的通话中
CHtml::listData(OrderStatus::model()->findAll(),'status\u id','status')
status_id是生成的列表数组的键(数组索引),它每次都被相同的值覆盖,这就是为什么它只显示一个值和最后一个值。表中的字段名是什么?您是否还有一个defaultScope()
?在状态栏中,我有新的、正在处理的、已发货的、退货请求、已取消的、退款的、已交付的。是的,我有defaultscope()
,但即使我删除它,也会出现同样的问题。我的意思是列名称是什么?是您的主键列状态\u id
?是,这是主键。它会出现在右边的一栏,否则“delievered”就不会出现。这真奇怪。我唯一能做的就是现在在数组中手动输入它(我知道,很糟糕)。当我进行var_转储时,它返回所有7。是的,我确实有一个默认作用域,但我删除了它,这仍然是相同的问题。请粘贴打印结果(OrderStatus::model()->findAll())。你确定你有一个名为“status\u id”的栏目,而且它不仅给了我“id”<代码>阵列([]=>已交付)
。。而不是整个名单。
array("1" => "Arts", "2" => "Science", "3" => "Culture");