我已经完成了这个:
但是没有成功。我的gridView:
<?= GridView::widget([
'dataProvider' => new yii\data\ActiveDataProvider(['query' => $model->getLibBookMasters()]),
'summary' => '',
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'lbm_book_no',
[
'attribute' => 'lbm_barcode_no',
//'type' => 'raw',
'value'=> function($model){
return \barcode\barcode\BarcodeGenerator::widget(
[
'elementId' => 'lbm_barcode_no',
'value'=> 'lbm_barcode_no',
'type'=>'ean13',
]);},
],
],
]); ?>
我需要通过elementId
来完成这个技巧但却找不到它。
我刚刚安装了条形码生成器,不知道怎么玩。
答案 0 :(得分:2)
您需要传递不同的'lbm_barcode_no'
。由于您的代码目前正在传递文字lbm_barcode_no
而不是模型的div
属性的值。此外,您必须创建要显示条形码的format
,并将列的raw
设置为html
或'columns' => [
['class' => 'yii\grid\SerialColumn'],
'lbm_book_no',
[
'attribute' => 'lbm_barcode_no',
'format' => 'raw',
'value'=> function($model){
return yii\helpers\Html::tag('div', '', ['id' => 'barcode-'.$model->lbm_barcode_no]).
\barcode\barcode\BarcodeGenerator::widget([
'elementId' => 'barcode-'.$model->lbm_barcode_no,
'value'=> $model->lbm_barcode_no,
'type'=>'ean13',
]);
},
],
],
:
barcode-
我用{{1}}为标签添加前缀以避免碰撞(你永远不知道)。