Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.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
Php Symfony2 transtable添加查询_Php_Mysql_Symfony_Doctrine Orm_Doctrine - Fatal编程技术网

Php Symfony2 transtable添加查询

Php Symfony2 transtable添加查询,php,mysql,symfony,doctrine-orm,doctrine,Php,Mysql,Symfony,Doctrine Orm,Doctrine,我对条令和Transtable有意见 我想向数据库添加新数据。我的默认语言是pl\U pl 我的控制器: namespace Gogs\CMSBundle\Controller; use Gogs\CMSBundle\Entity\Page; ... public function addAction() { $em = $this->getDoctrine()->getManager(); $page = new Page();

我对条令和Transtable有意见

我想向数据库添加新数据。我的默认语言是pl\U pl

我的控制器:

namespace Gogs\CMSBundle\Controller;    
use Gogs\CMSBundle\Entity\Page;

...

public function addAction()
    {
        $em = $this->getDoctrine()->getManager();

        $page = new Page();
        $page->setName('new');
        $em->persist($page);
        $em->flush();


        $page->setTranslatableLocale('it');
        $page->setName('new ita');
        $em->persist($page);
        $em->flush();

        $page->setTranslatableLocale('en');
        $page->setName('new eng');
        $em->persist($page);
        $em->flush();

        $em->persist($page);
        $em->flush();

        $abc = 'Success';
        return new Response($abc);
    }
打开web/app_dev.php/add页面时,会出现以下错误:

执行“插入到页面(名称、, 带参数的内容、菜单、顺序、图标)值(?、、、?、?)' [“新建”,空,空,空,空]:

SQLSTATE[42000]:语法错误或访问冲突:1064您有 SQL语法错误;检查与您的产品相对应的手册 MySQL服务器版本,以便使用正确的语法(接近“顺序,图标”) 第1行的值('new',NULL,NULL,NULL',NULL')

mypage.php

<?php

namespace Gogs\CMSBundle\Entity;

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

/**
 * Page
 *
 * @ORM\Table()
 * @ORM\Entity
 *
 */
class Page
{
    /**
     * @Gedmo\Locale
     */
    private $locale = 'pl_PL';

    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

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

    /**
     * @var string
     *
     * @ORM\Column(name="content", type="text")
     * @Gedmo\Translatable
     */
    private $content;

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

    /**
     * @var integer
     *
     * @ORM\Column(name="order", type="integer", length=32)
     */
    private $order;

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


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

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

        return $this;
    }

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

    /**
     * Set content
     *
     * @param string $content
     * @return Page
     */
    public function setContent($content)
    {
        $this->content = $content;

        return $this;
    }

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

    /**
     * Set menu
     *
     * @param string $menu
     * @return Page
     */
    public function setMenu($menu)
    {
        $this->menu = $menu;

        return $this;
    }

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

    /**
     * Set order
     *
     * @param integer $order
     * @return Page
     */
    public function setOrder($order)
    {
        $this->order = $order;

        return $this;
    }

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

    /**
     * Set icon
     *
     * @param string $icon
     * @return Page
     */
    public function setIcon($icon)
    {
        $this->icon = $icon;

        return $this;
    }

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

    public function setTranslatableLocale($locale)
    {
        $this->locale = $locale;
    }
}
不幸的是,在表“Page”中,记录8有了新的值,表ext\u translation进一步为空

编辑2:

我解决了我的问题

config.yml中缺少#条令扩展配置。现在看来:

    # Doctrine Configuration
doctrine:
    dbal:
        driver:   "%database_driver%"
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%"
        charset:  UTF8

    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        entity_managers:
                    default:
                        auto_mapping: true
                        mappings:
                            gedmo_translatable:
                                type: annotation
                                prefix: Gedmo\Translatable\Entity
                                dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/Entity"
                                alias: GedmoTranslatable # (optional) it will default to the name set for the mapping
                                is_bundle: false

# Doctrine Extensions Configuration
stof_doctrine_extensions:
        default_locale: "%locale%"
        translation_fallback: true
        orm:
            default:
              translatable: true
    $repository = $this->getDoctrine()
        ->getRepository('GogsCMSBundle:Page');

    $article = $repository->find(8);

    $article->setName('my title in eng');
    $article->setContent('my content in eng');
    $article->setTranslatableLocale('en'); // change locale
    $em->persist($article);
    $em->flush();
    # Doctrine Configuration
doctrine:
    dbal:
        driver:   "%database_driver%"
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%"
        charset:  UTF8

    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        entity_managers:
                    default:
                        auto_mapping: true
                        mappings:
                            gedmo_translatable:
                                type: annotation
                                prefix: Gedmo\Translatable\Entity
                                dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/Entity"
                                alias: GedmoTranslatable # (optional) it will default to the name set for the mapping
                                is_bundle: false

# Doctrine Extensions Configuration
stof_doctrine_extensions:
        default_locale: "%locale%"
        translation_fallback: true
        orm:
            default:
              translatable: true