Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Yii2中使用细节视图小部件内部的条件?_Yii2_Yii2 Advanced App_Detailview - Fatal编程技术网

如何在Yii2中使用细节视图小部件内部的条件?

如何在Yii2中使用细节视图小部件内部的条件?,yii2,yii2-advanced-app,detailview,Yii2,Yii2 Advanced App,Detailview,下面是一个详细视图小部件 <?= DetailView::widget([ 'model' => $model, 'attributes' => [ 'id', 'name', 'entity_name', 'voucher_category', 'credit', 'debit',

下面是一个详细视图小部件

 <?= DetailView::widget([
        'model' => $model,
        'attributes' => [
            'id',
            'name',
            'entity_name',
            'voucher_category',
            'credit',
            'debit',
            'remarks:ntext',
            'posting_date',
            'payment.method',

            [
            'label'  => 'Reference Date',
            'value' => $model->reference_date !=NULL  ?  $model->reference_date: 'Not Defined',
            ],
            'voucher_no',

        ],
    ]) ?>

也就是说,我想检查一个条件,根据这个条件在视图中显示一个值。如何在细节视图小部件中执行此操作?

您可以使用三元添加条件。比如说,

[
 'attribute' => 'voucher_category',
 'value' => (($model->voucher_category ==0) ? "Income Voucher": (($model->voucher_category ==1)? "Exepense Voucher" : "General Voucher")),
],

隐姓埋名骷髅的回答很好,但我找到了另一种方法。借助于模型内部的函数。 内部视图

<?= DetailView::widget([
        'model' => $model,
        'attributes' => [
                 'id',

                 ...      

                 array(
                'format' => 'text',
                'value'=>$model->getvoucher(),
                'attribute'=>'voucher_category_id',
                ), 

        ],
    ]) ?>
我不知道这个方法是正确的还是应该被使用,但是你可以这样做来得到想要的结果。就我个人而言,我使用了疯狂骷髅的答案

另一种方法

[
             'label' => 'Vocuher Category',

             'attribute' => function( $model )
             {
                if( $model->voucher_category == 0 )
                    return "Income Voucher";
                if( $model->voucher_category == 1 )
                    return "Expense Voucher";
                else
                    return "General Voucher";
             }
            ],
为我工作

<?= DetailView::widget([
        'model' => $model,
        'attributes' => [
            'title',
         [
         'attribute' => 'availability',
         'value' => (($model->availability ==1) ? "Available":'Not Available'),
         ],
      ],
    ]) ?>

我已经在我的问题中使用了它。这里只有两个选项:是或否。我有3个条件要检查
[
             'label' => 'Vocuher Category',

             'attribute' => function( $model )
             {
                if( $model->voucher_category == 0 )
                    return "Income Voucher";
                if( $model->voucher_category == 1 )
                    return "Expense Voucher";
                else
                    return "General Voucher";
             }
            ],
<?= DetailView::widget([
        'model' => $model,
        'attributes' => [
            'title',
         [
         'attribute' => 'availability',
         'value' => (($model->availability ==1) ? "Available":'Not Available'),
         ],
      ],
    ]) ?>