Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试转换实体Symfony2时出现问题_Symfony_Symfony 2.3 - Fatal编程技术网

尝试转换实体Symfony2时出现问题

尝试转换实体Symfony2时出现问题,symfony,symfony-2.3,Symfony,Symfony 2.3,我试图用Gedmo translateable在Symfony2中设置一些可翻译的内容,但似乎我做错了什么或遗漏了什么 我在composer.json文件中包含了这一行: "gedmo/doctrine-extensions": "2.3.*@dev" 此外,我还在config.yml文件中添加了以下几行: stof_doctrine_extensions: orm: alopatria: timestampable: true

我试图用Gedmo translateable在Symfony2中设置一些可翻译的内容,但似乎我做错了什么或遗漏了什么

我在composer.json文件中包含了这一行:

"gedmo/doctrine-extensions": "2.3.*@dev"
此外,我还在config.yml文件中添加了以下几行:

stof_doctrine_extensions:
    orm:
        alopatria:
            timestampable: true
            sluggable: true
            translatable: true
实体类的设置如下所示:

<?php

namespace ...;

use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Translatable\Translatable;

/**
* ...\Entity
*
* @ORM\Table(name="content")
* @ORM\HasLifecycleCallbacks 
* @ORM\Entity(repositoryClass="...\Entity\ContentRepository")
*/
class Content implements Translatable
{
    /**
     *
     * @ORM\Column(name="id", type="bigint", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $id;

    /**
     * @Gedmo\Translatable
     * @ORM\Column(name="title", type="string", length=32, nullable=false)
     */
    protected $title;

    /**
     * @Gedmo\Translatable
     * @ORM\Column(name="text", type="text", nullable=false)
     */
    protected $text;

    /**
     * @var datetime $created
     *
     * @Gedmo\Timestampable(on="create")
     * @ORM\Column(type="datetime")
     */
    private $created;

    /**
     * @var datetime $updated
     *
     * @Gedmo\Timestampable(on="update")
     * @ORM\Column(type="datetime")
     */
    private $updated;

    /**
     * @var datetime $contentChanged
     *
     * @ORM\Column(name="content_changed", type="datetime", nullable=true)
     * @Gedmo\Timestampable(on="change", field={"title", "text"})
     */
    private $contentChanged;

    /**
     * @Gedmo\Slug(fields={"title"})
     * @ORM\Column(length=128, unique=true)
     */
    private $slug;


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

    /**
     * Set title
     *
     * @param string $title
     * @return Content
     */
    public function setTitle($title)
    {
        $this->title = $title;

        return $this;
    }

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

    /**
     * Set text
     *
     * @param string $text
     * @return Content
     */
    public function setText($text)
    {
        $this->text = $text;

        return $this;
    }

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

    /**
     * Set created
     *
     * @param \DateTime $created
     * @return Content
     */
    public function setCreated($created)
    {
        $this->created = $created;

        return $this;
    }

    /**
     * Get created
     *
     * @return \DateTime 
     */
    public function getCreated()
    {
        return $this->created;
    }

    /**
     * Set updated
     *
     * @param \DateTime $updated
     * @return Content
     */
    public function setUpdated($updated)
    {
        $this->updated = $updated;

        return $this;
    }

    /**
     * Get updated
     *
     * @return \DateTime 
     */
    public function getUpdated()
    {
        return $this->updated;
    }

    /**
     * Set contentChanged
     *
     * @param \DateTime $contentChanged
     * @return Content
     */
    public function setContentChanged($contentChanged)
    {
        $this->contentChanged = $contentChanged;

        return $this;
    }

    /**
     * Get contentChanged
     *
     * @return \DateTime 
     */
    public function getContentChanged()
    {
        return $this->contentChanged;
    }

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

        return $this;
    }

    /**
     * Get slug
     *
     * @return string 
     */
    public function getSlug()
    {
        return $this->slug;
    }
}
这就是错误:

The class 'Gedmo\Translatable\Entity\Translation' was not found in the chain configured namespaces ...\Entity, FOS\UserBundle\Model

有什么帮助吗?谢谢

您还需要配置要使用的可翻译实体。在config.yml中:

orm:
auto_generate_proxy_classes: %kernel.debug%
mappings:
    translatable:
        type: annotation
        is_bundle: false
        prefix: Gedmo\Translatable\Entity
        dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/Entity"
        alias: GedmoTranslatable

app/config.yml中缺少某些内容。看,我来看看这个网址……这个博客似乎是为symfony-2.2写的,对于2.3版它不起作用。继续努力让它工作。
orm:
auto_generate_proxy_classes: %kernel.debug%
mappings:
    translatable:
        type: annotation
        is_bundle: false
        prefix: Gedmo\Translatable\Entity
        dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/Entity"
        alias: GedmoTranslatable