У меня есть схема базы данных блога с таблицами posts
, categories
и некоторыми другими. Для каждой записи в таблице posts
имеется столбец post_category
, содержащий идентификатор записи в таблице categories
. Также имеются поля флага post_active
, соответственно cat_active
(для таблицы categories
), указывающие, доступен ли пост / категория для чтения или нет (если 1 - активен, если 0 - неактивен).
Например:
Таблица «Посты»:
+---------+------------+----------------+---------------+-------------+
| post_id | post_title | post_content | post_category | post_active |
+---------+------------+----------------+---------------+-------------+
| 1 | Lorem..... | ipsum dolor... | 1 | 1 |
+---------+------------+----------------+---------------+-------------+
Таблица «Категории»:
+--------+----------+------------+
| cat_id | cat_name | cat_active |
+--------+----------+------------+
| 1 | Category | 1 |
+--------+----------+------------+
В настоящее время я использую предложение Eloquent where()
, чтобы выбрать все активные сообщения из таблицы posts
:
$posts = Post::where('post_active', '=', 1)->get();
Но может быть ситуация, когда сообщение активно (posts.post_active = 1
), а вся категория - нет (categories.cat_active = 0
). Как я могу выбрать все активные сообщения, которые принадлежат к активной категории с Eloquent? Ванильный SQL-оператор также работает, его можно легко преобразовать в Eloquent.
Любая помощь очень ценится!