Получение постов категорий через связную таблицу

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Получение постов категорий через связную таблицу

Сообщение alexa777 »

Есть три таблицы
Post

Post_category
-post_id
-catgory_id

Category

Пытаюсь получить все посты определенной категории
$post = $driver->category;
выдает null
Помогите что не так?

Код: Выделить всё

public function getCategory() 
    {
    return $this->hasMany(Category::className(), ['id' => 'category_id'])
                    ->via('postCategory');
    }
    
     public function getPostCategory()
    {
        return $this->hasMany(PostCategory::className(), ['post_id' => 'id'])
                    ->via('post');
    }

    public function getPost()
    {

        return $this->hasMany(Post::className(), ['post_id' => 'id']);
    }
    
Последний раз редактировалось alexa777 2018.03.26, 11:13, всего редактировалось 2 раза.
mkramer
Сообщения: 531
Зарегистрирован: 2014.12.14, 13:02

Re: Получение постов категорий через связную таблицу

Сообщение mkramer »

Что вы хотите получить? У вас в коде какой-то бред. Это фрагмент модели чего у вас?
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Получение постов категорий через связную таблицу

Сообщение alexa777 »

mkramer писал(а): 2018.03.26, 10:21 Что вы хотите получить? У вас в коде какой-то бред. Это фрагмент модели чего у вас?
Я же написал, посты категории получить, захожу в категорию и чтобы выводились посты которые относятся к этой категории.
Да это фрагмент модели поста а что же еще.?
Этот бред, как вы выразились, с официальной документации https://www.yiiframework.com/doc/guide/ ... tion-table
BalykhinAS
Сообщения: 179
Зарегистрирован: 2018.02.05, 13:41
Контактная информация:

Re: Получение постов категорий через связную таблицу

Сообщение BalykhinAS »

Если вы хотите выбрать посты через модель категории то в модели категории должен быть метод getPosts. А в приведенном коде очевидно модель поста только не понятно для чего в ней getPost()
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Получение постов категорий через связную таблицу

Сообщение alexa777 »

Wizard писал(а): 2018.03.26, 10:53 Если вы хотите выбрать посты через модель категории то в модели категории должен быть метод getPosts. А в приведенном коде очевидно модель поста только не понятно для чего в ней getPost()
А какая разница через какую модель выбирать? У меня сайт специфически построен и выводится категория через postController
site.ru/post/category

и во views $model->id получает id шник категорий
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Получение постов категорий через связную таблицу

Сообщение andku83 »

alexa777 писал(а): 2018.03.26, 11:07 А какая разница через какую модель выбирать?
Разницы никакой, если вы правильно пропишете связи.
Перечитайте еще раз ВНИМАТЕЛЬНО документацию
mkramer
Сообщения: 531
Зарегистрирован: 2014.12.14, 13:02

Re: Получение постов категорий через связную таблицу

Сообщение mkramer »

alexa777 писал(а): 2018.03.26, 11:07

А какая разница через какую модель выбирать?
Разница большая. Вам надо понимать, кто к кому относится. Если у вас категория содержит посты, то это category has many posts, если у вас могут быть родительские и дочерние посты (как в WordPress, к примеру), то получается post has many posts. И в первом случае getPosts должно быть именно в модели Category, а во втором - в посте. Так что разберитесь, кто кого имеет :)
Ответить