Может получить путь к нескольким изображениям из моей базы данных, но при запросе больше 9 выдает внутреннюю ошибку сервера - PullRequest
0 голосов
/ 14 апреля 2019

Я нахожусь на стажировке по веб-разработке, мне нужно работать над проектом под Symfony 3.2, но я не обучался Symfony, во всяком случае, я обнаружил его самостоятельно в течение последних двух недель (потому что люди, которые были должен помочь мне не знать Symfony и не работать над проектом) и здесь я сталкиваюсь с проблемой, которую я не понимаю, веб-сайт почти социальная сеть, и я должен работать над показами посты пользователя по критериям, если я получаю только несколько постов, никаких проблем, у меня есть данные изображения и все, что я просил, если я не установил лимит (с помощью setMaxResults ()), я получаю внутреннюю ошибку сервера.

Итак, я хочу получить изображение профиля от авторов сообщений, я получаю сообщения, которые мне нужны, во всей связанной информации (например, об авторе), я получаю их с помощью функции в моем postRepository. Затем в моем контроллере, когда я пытаюсь извлечь некоторую информацию (например, путь к изображению автора), с помощью метода: $ author-> getImage () -> getSrc (); здесь, если я установил менее 9 результатов в своем запросе postRepository, он отлично работает, но если я не хочу устанавливать ограничение или если я хочу установить больший предел, чем 9, я получаю: «Не удалось загрузка ресурса: сервер ответил со статусом 500 (Внутренняя ошибка сервера) "

в моем посте Репозиторий

public function getLastFiveCommunityPosts($community) {
        return $this->createQueryBuilder('post')
                   ->join('post.communities', 'comm') 
                   ->where('comm.id = :commu')
                   ->setParameter('commu', $community)
                   ->orderBy('post.createdAt', 'DESC')
                   //->setMaxResults(9) work perfectly
                   //->setMaxResults(25) don't work
                   ->getQuery()
                   ->getResult();

в моем контроллере


            foreach ($posts as $post) {
                $author = $post->getAuthor();
                $img = $author->getImage();//->getSrc();!!!!!HERE IS MY PROBLEM!!!!!
                $test = (null !== $img)? true : false;//what i just tried to test if getImage() return a null object, and no, on all post it returns true.
                $reTest = (null !== $img->getSrc())? true : false;// and this make me have an internal server error(if i don't set a maxResult between 1 and 9) 
                $data[] = [
                    'community' => $community->getName(),
                    'postContent' => $post->getContent(), 
                    'postDate' => $post->getCreatedAt(), 
                    'authorFstName' => $author->getFirstName(),
                    'authorLstName' => $author->getLastName(),
                    'authorJob' => $author->getJob(),
                    'authorImg'=> $img
                ];
            }
        return new JsonResponse($data);
    }

проект использует корзину sw3, и я думаю, что изображения, которые я хочу, размещены в этой корзине. может быть, есть правильный способ получить их массово?

1 Ответ

0 голосов
/ 15 апреля 2019

Хорошо, проблема была в том, что все мои объекты изображения не были одинаковыми (из-за оставшегося профиля старой версии). Я нашел этот метод для проверки объекта изображения:


$test = property_exists($img, 'src'); //return true if it's an old object with src relate on him, return false if it's an object with the ->getSrc() method

поэтому, если он возвращает true, я отправляю $ img, а если он возвращает false, я отправляю $ img-> getSrc () !!! Большое спасибо Джесс Габриэль, вы отправили меня на правильный путь!

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