PdoPage с собственным классом

Добрый день, ребят подскажите:
При вызове pdoage с кастомным классом, и использовании leftjoin. получаем ошибки вызова присоединяемых классов код вызова (под катом):

[[!pdoPage?
                                            &tpl=`a3pfrp_line_tpl`
                                            &class=`A3pfrp`
                                            &loadModels = `bstpfrp`
                                            &leftJoin=`{
                                                "Status": {
                                                    "class" : "A3pfrpStatus",
                                                    "on"    : "A3pfrp.status_id = Status.id"
                                                },
                                                "Theme" : {
                                                    "class" : "A3pfrpThemeCategory",
                                                    "on"    : "A3pfrp.theme_category_id = Theme.id"
                                                }
                                            }`
                                            &select=`{
                                                "A3pfrp": "*",
                                                "Status": "name",
                                                "Theme" : "category_name"
                                            }`
                                            &showLog=`0`
                                            &sortby=`A3pfrp.id`
                                            &sortdir=`ASC`
                                            &limit=`10`
                                           /*TPL SECTION */
                                            &showUnpublished=`0`
                                        ]]

Поля A3pfrp.status_id и A3pfrp.theme_category_id у экземпляра класса A3pfrp могут быть не заполнены. И в логи мы получаем кучу сообщений о том, что не pdoPage не может подгрузить классы A3pfrpStatus и A3pfrpThemeCategory, т.к. по факту связи нет. Как это исправить? Как можно организовать проверку not null, или как подобное решить?

p.s. оставит ошибки в логах не вариант, из за спама этих сообщений можно пропустить реальные ошибки.
Vladimir Alekhin
09 апреля 2019, 11:32
modx.pro
485
0

Комментарии: 4

Владимир
09 апреля 2019, 11:36
+1
по правилам проектирования БД внешние ключи не могут быть null
    Vladimir Alekhin
    09 апреля 2019, 11:40
    0
    Спасибо за ответ.

    Создал решение на скорую руку, где в таблицах (справочник статусов и справочник категорий) создал записи «Без категории» и «Без статуса», и назначил их ID как дефолтные.

    Я правильно понимаю, что это нормальное решение, и вся моя ошибка в данном случае в неверном понимании принципа проектирования БД?
      Владимир
      09 апреля 2019, 11:55
      +1
      Да все верно. В классических реляционных базах данных у вас должна быть связь между присоединяемыми таблицами. Т.к. связи у вас нет, то необходимо всю эту проверку за бд делать в приложении.
        Vladimir Alekhin
        09 апреля 2019, 11:58
        0
        Понятно, спасибо большое за оперативную помощь!
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4