Есть сайт, на котором публикуются новости. Новости может создавать как администратор, так и зарегистрированные посетители сайта. Новости хранятся в базе данных в одной таблице
news.
id: integer
type: integer
model_id: integer DEFAULT NULL
image: varchar(255)
content: blob
type — тип новости (1 - новость от администратора, 2 — новость от посетителя сайта).
model_id — ID пользователя, написавшего новость.
На текущем этапе основное отличие новости администратора, от новости пользователя — разные папки для хранения картинок. Картинки для новости администратора сохраняются по пути
/images/news/site/, картинки от пользователя сохраняются по пути
/images/news/user/user_id.
Я создал класс News — это модель MVC, связанная с БД. Отвечает за основные параметры (id, content);
Дальше создал класс NewsAdmin extends News и NewsUser extends News. Они отвечают за сохранение картинок в нужную папку. Для этого в них реализован метод getPathToImages($image);
Проблема вот в чем.
Необходимо на сайте создать страницу «Новости». На странице должны быть переключатели: «Все новости», «Новости администратора», «Новости от посетителей».
Получить список новостей админа легко: NewsAdmin::find()->all(); Получить путь к папке с картинками легко $model->getPathToImages($model->image);
Аналогично с новостями пользователей.
А вот с общими новостями проблема. Даже если их и вытащить из БД с помощью News::find()->all(), то получить путь к папке уже невозможно, так как в классе News не реализован метод getPathToImages();
В чем ошибка? Не правильно создал таблицу и стоило делать две таблицы? Или не правильно реализовал методы? Как сделать красиво?