Symfony - Twig Сущность типа не найдена - PullRequest
0 голосов
/ 24 августа 2018

Я использую Symfony 4.1 и получаю простую ошибку.

У меня есть отношение в моих сущностях (ManyToOne), но теперь у меня в таблице есть идентификатор без отношения.

В моей веточке шаблон:

{{ agency.brand.id and agency.brand.slogan.id ? agency.brand.slogan.title : '' }}

Моя проблема в том, что лозунга для конкретного бренда не существует.

Итак, я получаю эту ошибку:

Исключение было сгенерировано во время рендеринга шаблона. («Объект типа« App \ Entity \ Slogan »для идентификаторов expId (27) не был найден ").

Я попробовал все, чтобы проверить в своей ветке, существует ли связь, но я получаю ошибку каждый раз.

Это странно, потому что:

agency.brand.slogan.id // return 27

agency.brand.slogan.title // generate error

Я пытался добавить это в мой бренд:

public function haveSlogan()
{
    try {
        if($this->getSlogan()) {
            return true;
        }
    } catch (EntityNotFoundException $e) {
        return false;
    }
}

А чтобы проверить в моей веточке:

if agency.brand.haveSlogan

Но оно всегда возвращает истину.

Как я могу поймать эту ошибку в Twig?

1 Ответ

0 голосов
/ 24 августа 2018

Возможно, в вашей базе данных есть противоречивые данные. Ошибка говорит следующее:

В записи вашей таблицы брендов есть идентификатор слогана (27). Тем не мение, в таблице слоганов нет записи с идентификатором 27.

Решение: в таблице вашего бренда измените внешний ключ на слоган с 27 на NULL. В этом случае вы можете проверить свой шаблон:

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