添加字符串过滤器和排序到datacolumn gridview yii2

时间:2018-02-09 05:16:44

标签: php gridview yii2 yii2-advanced-app yii2-basic-app

['header'=>'Bill No',
'attribute'=>'billid',
'filter'=>ArrayHelper::map(Bills::find()->all(),'id','billno'),
'format' =>'text',
'value'=>  function($data){
    return ($data->billid)?$data->bill->billno:'Nope';
}]

通过使用此代码,我得到一个下拉框作为过滤器,但帐单编号将是10000。所以我想要一个输入类型的文本作为我的外键的过滤器。

Relationship:
DB Table:
Cashbook
Column: billed

On
DB Table:
Bills
Column:id

我想从此过滤器的id中提取bill no。请帮忙 我想搜索和排序billno。

1 个答案:

答案 0 :(得分:0)

更好的选择是使用kartik\Select2,以便您可以使用下拉列表并搜索2合1。

您需要键入的最小字符数option才能打开下拉菜单,而不是通过点击一次打开1000个选项的下拉列表。

  

minimumInputLength:开始搜索所需的最少字符数。

[
    'header' => 'Bill No',
    'attribute' => 'billid',
    'filter' => \kartik\widgets\Select2::widget([
        'data' => ArrayHelper::map(Bills::find()->all(),'id','billno'),
        'model' => $searchModel,
        'attribute' => 'billid',
        'options' => [
            'placeholder' => 'Bill No',
            'id' => 'bill_id',
        ],
        'theme' => \kartik\widgets\Select2::THEME_BOOTSTRAP,
        'pluginOptions' => [
            'allowClear' => true,
            'minimumInputLength' => '3',
        ],
    ]),
    'format' =>'text',
    'value'=>  function($data){
      return ($data->billid)?$data->bill->billno:'Nope';
    }
],

希望能帮到你