У меня проблема на сервере, херуко, точнее проблема ветки, вот ошибка (на локальном работает хорошо):
[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;
}
}