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

时间:2015-08-06 08:54:23

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

我已经完成了这个:

但是没有成功。我的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来完成这个技巧但却找不到它。 我刚刚安装了条形码生成器,不知道怎么玩。

1 个答案:

答案 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}}为标签添加前缀以避免碰撞(你永远不知道)。