Получение неизвестного свойства в Yii

под содержимым курса я хочу, чтобы в столбце «Активные» отображалось «Да» или ** «Нет» ** Сначала он показывал «1» или «0», но это не то, что я хочу показать. Это мои попытки кодов, и я получаю эту ошибку. Цените это, если кто-нибудь может помочь мне.

Неизвестное свойство — yii\base\UnknownPropertyException Получение неизвестного свойства: app\models\Coursecontent::isActive

<?php

use yii\helpers\Html;
use yii\grid\GridView;
use yii\widgets\DetailView;

/* @var $this yii\web\View */
/* @var $model app\models\Course */

$this->title = $model->course_name;
$this->params['breadcrumbs'][] = ['label' => 'Courses', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
\yii\web\YiiAsset::register($this);
?>
<div class = "course-view">

    <h1><?= Html::encode($this->title) ?></h1>

    <p>
        <?= Html::a('<< Back', ['index'], ['class' => 'btn btn-primary']) ?>
        <?= Html::a('Update', ['update', 'id' => $model->course_id], ['class' => 'btn btn-primary']) ?>
        <?= Html::a('Delete', ['delete', 'id' => $model->course_id], [
            'class' => 'btn btn-danger',
            'data' => [
                'confirm' => 'Are you sure you want to delete this item?',
                'method' => 'post',
            ],
        ]) ?>
    </p>

    <?= DetailView::widget([
        'model' => $model,
        'attributes' => [     
            'course_name',
            'description',
            ['attribute' => 'active', 'value' => $model->isActive,'contentOptions' => ['style' => $model->active == 1 ? 'color:green' :'color:red']],
            'lastupdate',
        ],
    ]) ?>

<h2>Course Content</h2>

<?= Html::a('Create Coursecontent', ['coursecontent/create'], ['class' => 'btn btn-success']) ?>


<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        'chapter_name',
        'description',
        'video_link',
        ['attribute' => 'active',
             'value' => function ($model, $key, $index, $column) {return $model->isActive;},
             'contentOptions' => function ($model, $key, $index, $column) { 
                return $model->active == 1 ? ['style' => 'color:green'] : ['style' => 'color:red']; 
            }],

        ['class' => 'yii\grid\ActionColumn',
             
             'contentOptions' => ['class' => 'text-center'],
             'buttons' => [
                'view' => function ($url,$model) {
                    return Html::a('<span class = "glyphicon glyphicon-eye-open"></span>',['coursecontent/view', 'id' => $model->coursecontent_id]);
                },
                'update' => function ($url,$model) {
                    return Html::a('<span class = "glyphicon glyphicon-pencil"></span>',['coursecontent/update', 'id' => $model->coursecontent_id]);
                },
                'delete' => function ($url,$model) {
                    return Html::a('<span class = "glyphicon glyphicon-trash"></span>',['coursecontent/delete', 'id' => $model->coursecontent_id],
                        ['data' => [
                            'confirm' => 'Are you sure you want to delete this item?',
                            'method' => 'post',
                        ],
                    ]);
                },
            ]],
    ],
]); ?>
</div>

В одном месте вы используете $model->isActive, в другом $model->active. Я предполагаю, что второе верно, так как ошибка довольно проста.

El_Vanja 16.12.2020 15:48
['attribute' => 'active', 'value' => function ($model, $key, $index, $column) {return $model->active;}, 'contentOptions' => function ($model, $key, $index, $column) { return $model->active == 1 ? ['style' => 'color:green'] : ['style' => 'color:red']; }],
beyond 16.12.2020 16:09

да, я изменил isActive на активный, но теперь он все еще показывает «1» вместо «Да»

beyond 16.12.2020 16:10
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
1 513
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Придется внести 2 изменения в код.

  1. Замените все $model->isActive на $model->active.
  2. Верните «Да» или «Нет» в зависимости от значения $model->active.

Обновление DetailView:

[
    'attribute' => 'active',
    'value' => function ($model) {
        return $model->active ? "Yes" : "No";
    },
    'contentOptions' => ['style' => $model->active ? 'color:green' :'color:red']
],

Обновление GridView:

[
    'attribute' => 'active',
    'value' => function ($model) {
        return $model->active ? "Yes" : "No";
    },
    'contentOptions' => function ($model, $key, $index, $column) { 
        return $model->active ? ['style' => 'color:green'] : ['style' => 'color:red']; 
    }
],

Вам не нужен обратный вызов value для форматирования логического значения как текста да/нет. Вы можете использовать 'format' => 'boolean', который применит yii\i18n\Formmatter::asBoolean() к значению.

Michal Hynčica 17.12.2020 08:36

Ребят помогите пожалуйста!!! stackoverflow.com/questions/65359740/…

beyond 18.12.2020 16:33

Другие вопросы по теме