如何在symfony 2.6

时间:2015-04-22 13:44:25

标签: php mysql symfony doctrine entity

到目前为止,我所做的是 - >我在其中创建了一个包和实体类,并创建了一个名为" news"的数据库表。使用以下命令从该实体类

php app / console doctrine:schema:update --force

一切顺利。

现在我在其中创建了一个新的bundle和一个其他实体类,我想在其中创建一个名为" user"的数据库中的另一个表。但是给出了一个错误,"表名为' symfony.news'已存在' "

class user { 
   private $id; 
   private $userEmail; 

   public function getId() { 
       return $this->id; 
   } 

   public function setUserEmail($userEmail) { 
       $this->userEmail = $userEmail; 
       return $this; 
   } 
}

3 个答案:

答案 0 :(得分:9)

您的实体不包含注释,并且学说不知道如何处理此实体。但是如果你向你添加类似的东西:

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="user")
 */
class User
{
    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=60, unique=true)
     */
    private $email;

    public function getId()
    { 
        return $this->id; 
    } 

    public function setUserEmail($userEmail)
    { 
        $this->userEmail = $userEmail; 
        return $this; 
    }
}

如果你添加文件:User.orm.xml,如:

<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
  <entity name="AppBundle\Entity\User" table="user">
    <unique-constraints>
      <unique-constraint name="UNIQ_797E6294E7927C74" columns="email"/>
    </unique-constraints>
    <id name="id" type="integer" column="id">
      <generator strategy="IDENTITY"/>
    </id>
    <field name="email" type="string" column="email" length="60" nullable="false"/>
  </entity>
</doctrine-mapping>

到您的Resources/config/doctrine/目录, 你将能够运行命令:

php app/console doctrine:schema:update --force

结果你会收到:

Updating database schema...
Database schema updated successfully! "1" queries were executed

真的相信它会解决你的问题......

答案 1 :(得分:1)

为什么不使用doctrine命令?

php app/console doctrine:generate:entity 

答案 2 :(得分:0)

对于symfony 4:

php bin/console doctrine:schema:update --force

对于symfony 3:

php app/console doctrine:schema:update --force