这是我的下拉列表Time
的表单字段
<?= $form->field($model, 'Time')->widget(Select2::classname(), [
'data' => ArrayHelper::map(Schedule::find()->where(['username' => 'cust_id', 'day'=>'Day_cust','availability'=>'available'])->all(),'time','time'),
'language' => 'en',
'options' => ['placeholder' => 'Select available time ...'],
'pluginOptions' => [
'allowClear' => true
],
]);
?>
Day_cust
和cust_id
取自先前输入的文本,格式与用户输入的字段相同。
我尝试了上面的代码,但是无法显示可用时间。
这是我的时间表模型
public function attributeLabels()
{
return [
'schedule_id' => 'Schedule ID',
'username' => 'Username',
'day' => 'Day',
'time' => 'Time',
'availability' => 'Availability',
];
}
我想要的是我要在time
的下拉列表中显示基于available
和cust_id
的可用性day
在数据库中输入的时间由用户在字段中插入。
我应该怎么做?
如果有人想知道为什么我不使用依赖的dropdownlist是因为cust_id使用的文本输入与当天相同。我没有同时使用ddl。
答案 0 :(得分:0)
请确保您在ArrayHelper::map()
中使用了正确的数据库字段值。
您的数据库字段包含time
而不是Time
,因此ArrayHelper
应该像
ArrayHelper::map(Schedule::find()->where(['username' => 'cust_id', 'day'=>'Day_cust','availability'=>'available'])->all(),'time','time')