Yii1.1有一个CComponent类,它有一个CBaseController,它是CController的基类.有一个/protected/components/Controller.php类,它允许在任何视图中访问该类中的任何函数.
Yii2不再拥有CComponent类.所述Yii2引导指示"的Yii 2.0断CComponent在1.1类分为两类:YII \基\对象和YII \基地\组件".有没有人知道如何在Yii2和任何视图中编写全局函数,就像在Yii1.1中使用/protected/components/Controller.php一样?
几个类似的主题讨论自定义答案,但我想知道是否有正式的方法,而不是自定义的方式.
在Yii2中,使用Html::activeDropDownList,我可以用以下形式提交数据:
<?= Html::activeDropDownList($model, 'category', ArrayHelper::map($categories, 'id', 'name'), [
'multiple' => 'multiple',
'class' => 'multiselect',
]) ?>
Run Code Online (Sandbox Code Playgroud)
有没有办法在上面指定预先选择的类别?我知道可以使用Html::dropDownLost如下方式完成:
<?= Html::dropDownList('category', [1, 3, 5], ArrayHelper::map($categories, 'id', 'name'), [
'multiple' => 'multiple',
'class' => 'multiselect',
]) ?>
Run Code Online (Sandbox Code Playgroud)
但有一个权衡!没有地方可以表明这是附加到某个模型的某些数据,因为它们正在使用Html::activeDropDownList.
我找到的解决方案之一是使用ActiveForm如下:
<?= $form->field($model, 'category')
->dropDownList('category', [1, 3, 5], ArrayHelper::map($categories, 'id', 'name')
]) ?>
Run Code Online (Sandbox Code Playgroud)
我最后一个选项的问题是我无法指定html选项,如'multiple'和css,如'class'.
有关能够使用下拉列表以及指定列表是多选并具有预选值的任何帮助吗?此外,如果有人指导我到一个资源,我可以阅读何时何地选择,activeDropDownList或者dropDownList我真的很感激.
谢谢!