(Twig \\ Error \\ RuntimeError (code: 0): во время рендеринга шаблона возникла исключительная ситуация (\ "Не удалось преобразовать значение базы данных в" массив ") - PullRequest
0 голосов
/ 03 апреля 2019

У меня проблема на сервере, херуко, точнее проблема ветки, вот ошибка (на локальном работает хорошо):

[2019-04-03 12:31:32] request.CRITICAL: Uncaught PHP Exception Twig \ Error \ RuntimeError: "Возникла исключительная ситуация во время рендеринг шаблона («Не удалось преобразовать значение базы данных в« массив » как ошибка была вызвана десериализацией: 'unserialize (): Ошибка по смещению 56 из 60 байт ")." в /app/src/ForumBundle/Resources/views/Forum/index.html.twig строка 22 {"исключение": "[объект] (Twig \ Error \ RuntimeError (код: 0): An во время рендеринга шаблона возникла исключительная ситуация (\ "Could не преобразовывать значение базы данных в «массив», так как ошибка была вызвана unserialization: 'unserialize (): ошибка по смещению 56 из 60 байтов' \ "). по адресу /app/src/ForumBundle/Resources/views/Forum/index.html.twig:22, Doctrine \ DBAL \ Types \ ConversionExcepti on (код: 0): не удалось преобразовать значение базы данных в «массив», так как ошибка была вызвана unserialization: 'unserialize (): ошибка по смещению 56 из 60 байтов' в /app/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ConversionException.php:103) "} []

index.html

{% extends '@YosimitsoWorkingForum/Common/base.html.twig' %}
{% block forum %}
    {% include '@YosimitsoWorkingForum/Common/header.html.twig' %}
{% trans_default_domain 'YosimitsoWorkingForumBundle' %}
 <div id="wf_forum_content">
<div class="wf_breadcrumb">Forum</div>

    <div id="wf_forum">
        <p>
        {% if (is_granted("ROLE_SUPER_ADMIN") or is_granted("ROLE_ADMIN")) or is_granted("ROLE_MODERATOR") %}
            <a class="wf_button" href="{{ path('workingforum_admin') }}">{{ 'forum.admin_access' | trans }}</a>
            {% endif %}
        {% include '@YosimitsoWorkingForum/Common/search_button.html.twig' %}
         <a href="{{ path('workingforum_rules') }}" class="wf_button">{{ 'forum.forum_rules' |trans }}</a>

    </p>
{% for forum in list_forum %}

    <div class="wf_forum">
        <h1>{{ forum.name }}</h1>
         <table class="wf_subforum">
    {% for subforum in forum.subForum %}
       <tr>
           <td class="wf_sub_name"><a href="{{ path('workingforum_subforum', {'subforum_slug' : subforum.slug }) }}">{{ subforum.name }}</a></td>
           <td class="wf_sub_stat">{{ subforum.nbThread | number_format }} {{ 'forum.nbThread' | trans }}<br />{{ subforum.nbPost | number_format }} {{ 'forum.nbPost' | trans }}</td>
           <td class="wf_sub_lastreply">
               {% if subforum.nbPost > 0 %}
               {{ 'forum.last_reply_date' |trans }}
               <br />
               {{ subforum.lastReplyDate | date(parameters.dateFormat) }}
               {% endif %}
               </td>
       </tr>
        {% endfor %}
         </table>
         </div> 
    {% endfor %}

    </div>
 </div>
{% endblock %}


parameters.yml

    database_driver_prod: pdo_pgsql
    database_host_prod: 
    database_port_prod: 5432
    database_name_prod: 
    database_user_prod:

субъект форума

<?php

namespace Yosimitso\WorkingForumBundle\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Yosimitso\WorkingForumBundle\Util\Slugify;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * Class Forum
 *
 * @package Yosimitso\WorkingForumBundle\Entity
 *
 * @ORM\Table(name="workingforum_forum")
 * @ORM\Entity()
 */
class Forum
{
    /**
     * @var integer
     *
     * @ORM\Id
     * @ORM\Column(name="id", type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=255)
     * @Assert\NotBlank(message="forum.not_blank")
     */
    private $name;

    /**
     * @var string
     *
     * @ORM\Column(name="slug", type="string", length=255)
     */
    private $slug;

    /**
     * @var ArrayCollection
     *
     * @ORM\OneToMany(
     *     targetEntity="Yosimitso\WorkingForumBundle\Entity\Subforum",
     *     mappedBy="forum",
     *     cascade={"persist","remove"},
     *     orphanRemoval=true
     * )
     */
    private $subForum;

    /**
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @param string $name
     *
     * @return Forum
     */
    public function setName($name)
    {
        $this->name = $name;

        return $this;
    }

    /**
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * @return ArrayCollection
     */
    public function getSubforum()
    {
        return $this->subForum;
    }

    /**
     * @param Subforum $subforum
     *
     * @return Forum
     */
    public function addSubForum(Subforum $subforum)
    {
        $this->subForum[] = $subforum;

        return $this;
    }

    /**
     * @param Subforum $subForum
     *
     * @return Forum
     */
    public function removeSubForum(Subforum $subForum)
    {
        $this->subForum->remove($subForum);
        $subForum->setForum(null);

        return $this;
    }

    /**
     * Set slug
     *
     * @param string $slug
     *
     * @return Forum
     */
    public function setSlug($slug)
    {
        $this->slug = $slug;

        return $this;
    }

    /**
     * Get slug
     *
     * @return string
     */
    public function getSlug()
    {
        return $this->slug;
    }

    /**
     * @param $name
     *
     * @return mixed|string
     */
    public function generateSlug($name)
    {
        $this->slug = Slugify::convert($name);

        return $this->slug;
    }

}

и Подфорум

<?php

namespace Yosimitso\WorkingForumBundle\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Yosimitso\WorkingForumBundle\Util\Slugify;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * Class Subforum
 *
 * @package Yosimitso\WorkingForumBundle\Entity
 *
 * @ORM\Entity(repositoryClass="Yosimitso\WorkingForumBundle\Repository\SubforumRepository")
 * @ORM\Table(name="workingforum_subforum")
 */
class Subforum
{
    /**
     * @var integer
     *
     * @ORM\Id
     * @ORM\Column(name="id", type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     * @ORM\Column(name="description", type="string", length=255, nullable=true)
     */
    private $description;

    /**
     * @var Forum
     *
     * @ORM\ManyToOne(targetEntity="Yosimitso\WorkingForumBundle\Entity\Forum", inversedBy="subForum")
     * @ORM\JoinColumn(name="forum_id", referencedColumnName="id")
     */
    private $forum;

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string")
     * @Assert\NotBlank()
     */
    private $name;

    /**
     * @var integer
     *
     * @ORM\Column(name="nb_thread", type="integer", nullable=true)
     */
    private $nbThread;

    /**
     * @var string
     *
     * @ORM\Column(name="slug", type="string", length=255)
     * @Assert\NotBlank()
     */
    private $slug;

    /**
     * @var integer
     *
     * @ORM\Column(name="nb_post", type="integer", nullable=true)
     */
    private $nbPost;

    /**
     * @var \Datetime
     * @ORM\Column(name="last_reply_date", type="datetime", nullable=true)
     *
     */
    private $lastReplyDate;

    /**
     * @var UserInterface
     *
     * @ORM\ManyToOne(targetEntity="Yosimitso\WorkingForumBundle\Entity\User")
     * @ORM\JoinColumn(name="lastReplyUser", referencedColumnName="id", nullable=true)
     */
    private $lastReplyUser;
    /**
     * @var ArrayCollection
     *
     * @ORM\OneToMany(
     *     targetEntity="Yosimitso\WorkingForumBundle\Entity\Thread",
     *     mappedBy="subforum",
     *     cascade={"remove"}
     * )
     */
    private $thread;

    /** @var ArrayCollection
     * @ORM\Column(name="allowed_roles",type="array", nullable=true)
     */

    private $allowedRoles;

    /**
     * @return integer
     */
    public function getId()
    {
        return $this->id;
    }

    public function __construct()
    {
        $this->allowedRoles = new ArrayCollection;
    }

    /**
     * @return string
     */
    public function getDescription()
    {
        return $this->description;
    }

    /**
     * @param string $description
     *
     * @return Subforum
     */
    public function setDescription($description)
    {
        $this->description = $description;

        return $this;
    }

    /**
     * @return Forum
     */
    public function getForum()
    {
        return $this->forum;
    }

    /**
     * @param Forum $forum
     *
     * @return Subforum
     */
    public function setForum(Forum $forum)
    {
        $this->forum = $forum;

        return $this;
    }

    /**
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * @param $name
     */
    public function setName($name)
    {
        $this->name = $name;

        if (empty($this->slug)) {
            $this->slug = Slugify::convert($this->name);
        }
    }

    /**
     * @return mixed
     */
    public function getNbThread()
    {
        return $this->nbThread;
    }

    /**
     * @param mixed $nbThread
     *
     * @return Subforum
     */
    public function setNbThread($nbThread)
    {
        $this->nbThread = $nbThread;

        return $this;
    }

    public function addNbThread($nb)
    {
        $this->nbThread += $nb;

        return $this;
    }

    /**
     * @return string
     */
    public function getSlug()
    {
        return $this->slug;
    }

    /**
     * @param string $slug
     *
     * @return Subforum
     */
    public function setSlug($slug)
    {
        $this->slug = $slug;

        return $this;
    }

    /**
     * @return mixed
     */
    public function getNbPost()
    {
        return $this->nbPost;
    }

    /**
     * @param mixed $nbPost
     *
     * @return Subforum
     */
    public function setNbPost($nbPost)
    {
        $this->nbPost = $nbPost;

        return $this;
    }

    public function addNbPost($nb)
    {
        $this->nbPost += $nb;

        return $this;
    }

    /**
     * @return mixed
     */
    public function getLastReplyDate()
    {
        return $this->lastReplyDate;
    }

    /**
     * @param mixed $lastReplyDate
     *
     * @return Subforum
     */
    public function setLastReplyDate($lastReplyDate)
    {
        $this->lastReplyDate = $lastReplyDate;

        return $this;
    }

    /**
     * @return UserInterface
     */
    public function getLastReplyUser()
    {
        return $this->lastReplyUser;
    }

    /**
     * @param UserInterface $lastReplyUser
     *
     * @return Subforum
     */
    public function setLastReplyUser(UserInterface $lastReplyUser)
    {
        $this->lastReplyUser = $lastReplyUser;

        return $this;
    }

    /**
     * @return ArrayCollection
     */
    public function getThread()
    {
        return $this->thread;
    }

    /**
     * @param ArrayCollection $thread
     *
     * @return Subforum
     */
    public function setThread(ArrayCollection $thread)
    {
        $this->thread = $thread;

        return $this;
    }

    /**
     * @param Thread $thread
     *
     * @return $this
     */
    public function addThread(Thread $thread)
    {
        $this->thread[] = $thread;

        return $this;
    }

    /**
     * @return ArrayCollection
     */
    public function getAllowedRoles()
    {
        return $this->allowedRoles;
    }

    /**
     * @param ArrayCollection $allowedRoles
     *
     * @return Subforum
     */
    public function setAllowedRoles(array $allowedRoles)
    {
        $this->allowedRoles = $allowedRoles;

        return $this;
    }

    /**
     * @return bool
     */
    public function hasAllowedRoles()
    {
        // Check if there is one or more allowed role and is not an empty one
        if (!is_null($this->allowedRoles) && count($this->allowedRoles) >= 1 && !empty($this->allowedRoles[0])) {
            return true;
        }

        return false;
    }

    /**
     * @param UserInterface $user
     * @return bool
     * Update statistic on new post
     */
    public function newPost(UserInterface $user)
    {
        $this->setNbPost($this->getNbPost() + 1)
            ->setLastReplyDate(new \DateTime)
            ->setLastReplyUser($user);

        return true;
    }

    /**
     * @param UserInterface $user
     * @return bool
     * Update statistic on new post
     */
    public function newThread(UserInterface $user)
    {
        $this->setNbPost($this->getNbPost() + 1)
            ->setNbThread($this->getNbThread() + 1)
            ->setLastReplyDate(new \DateTime)
            ->setLastReplyUser($user);

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