如何在 Gridview Yii2 的条码生成器中传递 "elementId"?

How to pass "elementId" in barcode generator in Gridview Yii2?

我经历过这个:

但没有成功。我的网格视图:

<?= 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 来解决问题,但没有找到。 我刚安装条码生成器,不知道怎么玩。

您需要传递不同的 elementId。由于您的代码当前是您正在传递文字 'lbm_barcode_no' 而不是模型的 lbm_barcode_no 属性的值。此外,您必须创建要显示条形码的 divs 并将列的 format 设置为 rawhtml:

'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- 以避免冲突(你永远不知道)。