['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。
答案 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';
}
],
希望能帮到你