提问者:小点点

如何显示文本而不是布尔值(Yii2)?


所以我有这个表单来创建一个工作角色,我需要显示这个工作角色是处于活动状态还是处于Hibernate状态。 我正在使用布尔值0和1来表示Hibernate和活动。 这是我在表单视图(form.php)中的代码。

<?= $form->field($model, 'status')->dropDownList(['1' => 'Active', '0' => 'Dormant'], ['prompt'=>'Select Option']) ?>

在我的模型(application.php)中,我添加了这个函数

public function getStatusLabel() 
    {
        return $this->status ? 'Active' : 'Dormant';
    }

然后在index.php视图中添加显示Active/Dormant。

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'], 
            [
                'attribute' => 'Status',
                'value' => 'statusLabel', 
            ],

到目前为止,一切都在起作用。 唯一的问题是,在view.php(查看添加的每个应用程序)中,状态仍然是display 1和0。 如何在view.php中显示活动/Hibernate呢?


共1个答案

匿名用户

您可以将其传递给如下函数:

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'], 
        [
            'attribute' => 'Status',
            'value' => function ($data) {
                return $data->getStatusLabel();
            }, 
        ],