Добрый вечер,Symfony 2.7.6 глобальные расширения & устаревшие предупреждения: app.user нельзя сравнивать с другими пользователями
Я недавно обновлен до Symfony 2.7.6. Кроме того, это помогло мне настроить HWIOAuthBundle, я заметил ошибку в шаблоне, который раньше делался.
Следующий тест никогда не действует, хотя я связан как создатель этого события!
{% if event.getCreator() == app.user %}
Creator выглядит следующим образом:
class Event implements EventInterface
{
/**
* @ORM\ManyToOne(targetEntity="FS\UserBundle\Entity\User", cascade={"persist"}, fetch="EAGER")
*
* @ORM\JoinColumn(referencedColumnName="id", nullable=false, onDelete="CASCADE")
*/
private $creator;
public function getCreator()
{
return $this->creator;
}
...
Я начал искать в профилировщика и обнаружил Twig_ExtensionInterface :: getGlobals() и Twig_ExtensionInterface :: initRuntime() осуждаются в Symfony 2.7 .6 (в моем приложении).
Затем я прочитал сообщение от Twig developper Remi Collet, сказав, что эти 2 устаревших вызова могут привести к ошибке Twig и загрузить простой патч для ветки (v1.23), но этот патч не помог.
Я взял более старую версию веткой/веткой, которая помогла мне решить предупреждение об устаревших методах. Но тест app.user все еще сломан ...
У кого-нибудь есть идея, почему мое глобальное расширение, app.user не может сравниться с другим пользователем в twig?
Большое спасибо! Я был уверен, что в Symfony два объекта, которые будут переданы одному и тому же объекту, будут действительны для теста '=='. – Louis
Yep, Symfony и Doctrine делают очень хорошую работу, создавая впечатление, что объект объекта всегда отображается на запись в базу данных. Но это такие исключения, где вы все еще замечаете внутреннюю работу. – hanzi