如何在 Yii2 的详细视图小部件中使用条件?
How to use a condition inside Detail view widget in Yii2?
以下是详细视图小部件
<?= 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',
],
]) ?>
我想要的是检查
if($model->voucher_category ==0)
{
return "Income Voucher";
}
elseif($model->voucher_category ==1)
{
return "Exepense Voucher";
}
else
{
return "General Voucher";
}
也就是说,我想检查在视图中显示值所依据的条件。我如何在详细视图小部件中执行此操作?
您可以使用三元添加条件。例如,
[
'attribute' => 'voucher_category',
'value' => (($model->voucher_category ==0) ? "Income Voucher": (($model->voucher_category ==1)? "Exepense Voucher" : "General Voucher")),
],
Incognito Skull 的回答很好,但我找到了另一种方法。借助模型内部的功能。
内部视图
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id',
...
array(
'format' => 'text',
'value'=>$model->getvoucher(),
'attribute'=>'voucher_category_id',
),
],
]) ?>
内部模型
public function getvoucher()
{
if($this->voucher_category ==0)
{
return "Income Voucher";
}
elseif($this->voucher_category ==1)
{
return "Exepense Voucher";
}
else
{
return "General Voucher";
}
}
我不知道这种方法是否正确或是否应该使用,但您可以这样做以获得所需的结果。我个人使用了 Insane skull 的答案。
另一种方法
[
'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'),
],
],
]) ?>
以下是详细视图小部件
<?= 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',
],
]) ?>
我想要的是检查
if($model->voucher_category ==0)
{
return "Income Voucher";
}
elseif($model->voucher_category ==1)
{
return "Exepense Voucher";
}
else
{
return "General Voucher";
}
也就是说,我想检查在视图中显示值所依据的条件。我如何在详细视图小部件中执行此操作?
您可以使用三元添加条件。例如,
[
'attribute' => 'voucher_category',
'value' => (($model->voucher_category ==0) ? "Income Voucher": (($model->voucher_category ==1)? "Exepense Voucher" : "General Voucher")),
],
Incognito Skull 的回答很好,但我找到了另一种方法。借助模型内部的功能。 内部视图
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id',
...
array(
'format' => 'text',
'value'=>$model->getvoucher(),
'attribute'=>'voucher_category_id',
),
],
]) ?>
内部模型
public function getvoucher()
{
if($this->voucher_category ==0)
{
return "Income Voucher";
}
elseif($this->voucher_category ==1)
{
return "Exepense Voucher";
}
else
{
return "General Voucher";
}
}
我不知道这种方法是否正确或是否应该使用,但您可以这样做以获得所需的结果。我个人使用了 Insane skull 的答案。
另一种方法
[
'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'),
],
],
]) ?>