到目前为止,我所做的是 - >我在其中创建了一个包和实体类,并创建了一个名为" 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;
}
}
答案 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