我一直想知道我的代码可能出了什么问题,因为Doctrine2没有在数据库中添加新实体。运行后
doctrine:schema:update --force
我已经回复了以下内容:
doctrine:schema:update --dump-sql 无需更新 - 您的数据库已与当前实体元数据同步。 doctrine:schema:update --force 无需更新 - 您的数据库已与当前实体元数据保持同步。
这是我的新实体:
<?php
namespace MainBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Distributor
*
* @ORM\Table(name="distributor")
* @ORM\Entity(repositoryClass="MainBundle\Repository\DistributorRepository")
*/
class Distributor
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="company_name", type="string", length=255, nullable=true, unique=true)
*/
private $companyName;
/**
* @var string
*
* @ORM\Column(name="contact_name", type="string")
*/
private $contactName;
/**
* @var string
*
* @ORM\Column(name="email", type="string", length=255, nullable=true, unique=true)
*/
private $email;
/**
* @var string
*
* @ORM\Column(name="phone", type="string", length=14, nullable=true, unique=true)
*/
private $phone;
/**
* @var \DateTime
*
* @ORM\Column(name="date", type="datetime")
*/
private $date;
/**
* @var string
*
* @ORM\Column(name="message", type="text")
*/
private $message;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set companyName
*
* @param string $companyName
*
* @return Distributor
*/
public function setCompanyName($companyName)
{
$this->companyName = $companyName;
return $this;
}
/**
* Get companyName
*
* @return string
*/
public function getCompanyName()
{
return $this->companyName;
}
/**
* Set contactName
*
* @param string $contactName
*
* @return Distributor
*/
public function setContactName($contactName)
{
$this->contactName = $contactName;
return $this;
}
/**
* Get contactName
*
* @return string
*/
public function getContactName()
{
return $this->contactName;
}
/**
* Set email
*
* @param string $email
*
* @return Distributor
*/
public function setEmail($email)
{
$this->email = $email;
return $this;
}
/**
* Get email
*
* @return string
*/
public function getEmail()
{
return $this->email;
}
/**
* Set phone
*
* @param string $phone
*
* @return Distributor
*/
public function setPhone($phone)
{
$this->phone = $phone;
return $this;
}
/**
* Get phone
*
* @return string
*/
public function getPhone()
{
return $this->phone;
}
/**
* Set date
*
* @param \DateTime $date
*
* @return Distributor
*/
public function setDate($date)
{
$this->date = $date;
return $this;
}
/**
* Get date
*
* @return \DateTime
*/
public function getDate()
{
return $this->date;
}
/**
* Set message
*
* @param string $message
*
* @return Distributor
*/
public function setMessage($message)
{
$this->message = $message;
return $this;
}
/**
* Get message
*
* @return string
*/
public function getMessage()
{
return $this->message;
}
}
以下是我的文件夹的组织方式:
有什么建议吗?提前谢谢。
以下是我项目中的学说配置:
答案 0 :(得分:0)
我认为这条线需要像这样改变:
@ORM\Entity(repositoryClass="MainBundle\Entity\DistributorRepository")
还要确保您确实创建了文件:src/MainBundle/Entity/DistributorRepository.php
。请注意,路径包含Entity
而不是Repository
!另外,请确保存在这些文件夹。
以下是参考文档: http://symfony.com/doc/current/doctrine/repository.html
答案 1 :(得分:0)
在我尝试了很多东西之后,我能够解决这个问题。我相信有效的提示是添加文件Resources / config / doctrine / Distributor.orm.yml。现在命令
doctrine:schema:update --force
现在允许我在数据库中添加表“distributor”。谢谢大家的意见。