execut / yii2-dropdown-content-input
为 yii2 定制的下拉列表字段
dev-master
2021-02-17 08:10 UTC
Requires
This package is auto-updated.
Last update: 2024-09-17 15:49:20 UTC
README
此小部件允许您在下拉列表中嵌入任何内容,例如 GridView。为此,您需要在容器小部件的设置中传递 HTML 内容('containerOptions'),其中每个下拉选项都有类 "item" 和属性:name(显示选中值),val(输入字段的选中值)。小部件使用 bootstrap 网格将列表容器的宽度拉伸为行宽。
安装
安装此扩展的首选方式是通过 composer。
安装
运行以下命令之一:
$ php composer.phar require execut/yii2-dropdown-content-input "dev-master"
或将其添加到您的 composer.json
文件的 require
部分:
"execut/yii2-dropdown-content-input": "dev-master"
require
简单示例
此示例展示了如何将 GridView 传递给小部件并在表单中使用小部件:
<?php use \yii\data\ArrayDataProvider; use \execut\widget\dropdownContent\DropdownContent; use \yii\widgets\ActiveForm; class TestModel extends \yii\base\Model{ public $city = null; public $otherCity = null; } $dataProvider = new ArrayDataProvider(); $dataProvider->allModels = [ [ 'name' => 'Moskow', 'country' => 'Russia' ], [ 'name' => 'London', 'country' => 'UK', ], [ 'name' => 'Washington', 'country' => 'USA' ], ]; $dataProvider->key = 'name'; $widgetParams = [ 'name' => 'test', 'value' => 'London', 'inputOptions' => [ 'placeholder' => 'Test placeholder...' ], 'containerOptions' => [ 'isExpand' => true, 'content' => function () use ($dataProvider) { return \yii\grid\GridView::widget([ 'columns' => [ 'name' => [ 'attribute' => 'name', ], ], 'dataProvider' => $dataProvider, 'rowOptions' => function ($row) { return [ 'class' => 'item', 'val' => $row['name'], 'text' => $row['name'], ]; }, ]); }, ], ]; $form = new ActiveForm(); ?> <div class="container"> <div class="row"> <div class="col-md-4"> <div class="form-group"> <?php /** * Usage as widget */ echo DropdownContent::widget($widgetParams); $widgetParams['containerOptions']['isExpand'] = false; ?> </div> </div> </div> <!-- Set relative position bootstrap row for stretching container content by width of row--> <div class="row" style="position: relative"> <!-- Reset position for bootstrap col to default--> <div class="col-md-6" style="position: static"> <div class="form-group"> <?php /** * Usage as form field */ $model = new TestModel(); echo $form->field($model, 'city')->widget(DropdownContent::class, $widgetParams); ?> </div> </div> <!-- Reset position for bootstrap col to default--> <div class="col-md-6" style="position: static"> <div class="form-group"> <?php echo $form->field($model, 'otherCity')->widget(DropdownContent::class, $widgetParams); ?> </div> </div> </div> </div>
许可证
yii2-dropdown-content-input 在 Apache License Version 2.0 许可下发布。有关详细信息,请参阅捆绑的 LICENSE.md
文件。