Почему не выводит название категории в yii2?

Доброго времени суток.
Имеется сайт со статьями. У статей есть собственные категории.
Когда вывожу данные из БД, например, название статьи, то все выводится как надо.
Когда же вывожу название категории <?= $article->article_category->title?>, то ничего не происходит. Примечательно, что если убрать title чтобы осталось $article->article_category, то выводит id категории.
В чем проблема может быть?

Код модели статей
<?php

namespace app\models;

use Yii;

/**
 * This is the model class for table "article".
 *
 * @property int $id
 * @property string $title
 * @property string $description
 * @property string $content
 * @property string $image
 * @property int $user_id
 * @property string $date
 * @property int $article_category
 *
 * @property ArticleCategory $articleCategory
 * @property User $user
 * @property ArticleComment[] $articleComments
 */
class Article extends \yii\db\ActiveRecord
{
    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return 'article';
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['title'], 'required'],
            [['title','description','content'], 'string'],
            [['date'], 'date', 'format'=>'php:Y-m-d'],
            [['date'], 'default', 'value' => date('Y-m-d')],
            [['title'], 'string', 'max' => 255],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'title' => 'Title',
            'description' => 'Description',
            'content' => 'Content',
            'image' => 'Image',
            'user_id' => 'User ID',
            'date' => 'Date',
            'article_category' => 'Article Category',
        ];
    }

    public function saveImage($filename)
    {
        $this->image = $filename;
        return $this->save(false);
    }


    public function deleteImage()
    {
        $imageUploadModel = new ImageUpload();
        $imageUploadModel->deleteCurrentImage($this->image);
    }
    
    public function getImage()
    {
        return ($this->image) ? '/uploads/' . $this->image : 'noImage.jpg';      
    }

    public function beforeDelete()
    {
        $this->deleteImage();
        return parent::beforeDelete(); // TODO: Change the autogenerated stub
    }


    public function saveArticleCategory($article_category) 
    {
        $category = ArticleCategory::findOne($article_category);
        $this->article_category = $article_category;
        $this->save(false);
    }


    /**
     * @return \yii\db\ActiveQuery
     */
    public function getArticleCategory()
    {
        return $this->hasOne(ArticleCategory::className(), ['id' => 'article_category']);
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getUser()
    {
        return $this->hasOne(User::className(), ['id' => 'user_id']);
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getArticleComments()
    {
        return $this->hasMany(ArticleComment::className(), ['article' => 'id']);
    }
}
  • Вопрос задан
  • 44 просмотра
Решения вопроса 2
BojackHorseman
@BojackHorseman
...в творческом отпуске...
$article->articleCategory->title;
Ответ написан
slo_nik
@slo_nik Куратор тега Yii
Связь у Вас называется "ArticleCategory", так же есть атрибут, который называется "article_category"
Соответственно $model->atricle_category выводит id, а если обратиться к связи, то будет Вам название категории
echo $model->articleCategory->title;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы