Получить сообщения по типам в возражении. js? - PullRequest
1 голос
/ 20 января 2020

Итак, у меня есть таблица сообщений и таблица типов. Каждый пост может иметь много типов. Я создал отношение HasManyRelation в почтовой модели. Нет, я получу sh, чтобы получить все сообщения, у которых type_id может быть 1 или 2. Это то, что я пробовал,

const posts = await UserPost.query()
            .select("id", "description", "price", "created_at")
            .eager("[user, category, images, types]")
             .modifyEager("types", builder => {
                 builder.where("user_post_type.type_id", 1)
             })
            .limit(limit)
            .orderBy("created_at", "desc");

Это не работает. Это просто фильтрует сами типы. Но на самом деле не возвращает сообщения с таким типом. Как я могу это сделать?

1 Ответ

0 голосов
/ 11 марта 2020

Eager делает до запроса, чтобы получить сообщение и после запроса для каждого Eager вы пишете в аргументах .eager(). Если вы хотите отфильтровать сообщение по типу, вы должны присоединиться к таблицам и добавить условие с .where(). Это первый пример, который приходит на ум:

const posts = await UserPost.query()
            .select("id", "description", "price", "created_at")
            .leftJoin('types')
            .eager("[user, category, images]")
            .where('types.type_id', 1) // Condition
            .limit(limit)
            .orderBy("created_at", "desc");

Если вы хотите увидеть другой пример, это ссылка для документации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...