2

我经历了这个:

但没有得到它的工作。我的网格视图:

<?= 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那个技巧但没有找到它。我刚安装了条码生成器,不知道怎么玩。

4

1 回答 1

2

你需要传递不同elementId的 s。由于您的代码当前是您传递文字而不是模型属性的'lbm_barcode_no'值。lbm_barcode_no此外,您必须创建div要显示条形码的 s 并将format列的设置为rawor 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-以避免冲突(你永远不知道)。

于 2015-08-06T20:45:40.007 回答