Ada*_*son 3 php orm doctrine doctrine-orm
我正在遵循Doctrine 入门教程.
我已经创建了这个Product类(通过教程中的复制/粘贴,以确保没有拼写错误),但是当我运行时
vendor/bin/doctrine orm:schema-tool:create
Run Code Online (Sandbox Code Playgroud)
我得到[OK] No Metadata Classes to process.看来这是因为默认的useSimpleAnnotationReader参数.Setup::createAnnotationMetadataConfigurationtrue
所以,如果我改为false:
$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/src"), $isDevMode, null, null, false);
Run Code Online (Sandbox Code Playgroud)
schema-tool:create现在运行上面的命令会返回:
[Doctrine\Common\Annotations\AnnotationException]
[Semantical Error] The annotation "@Doctrine\ORM\Annotation\Entity" in class Product does not exist, or could not be auto-loaded.
Run Code Online (Sandbox Code Playgroud)
什么时候应该执行然后转储出生成的SQL.
搜索SO和其他地方,似乎这个问题通常是由注释(我没有)中使用前向斜杠而不是产品实体中的其他拼写错误(我复制/粘贴)或使用Doctrine引起的作为更广泛框架的一部分(Zend,Symfony).
我的Product.php:
<?php
// src/Product.php
use Doctrine\ORM\Annotation as ORM;
/**
* @ORM\Entity @ORM\Table(name="products")
**/
class Product
{
/** @ORM\Id @ORM\Column(type="integer") @ORM\GeneratedValue **/
protected $id;
/** @ORM\Column(type="string") **/
protected $name;
public function getId()
{
return $this->id;
}
public function getName()
{
return $this->name;
}
public function setName($name)
{
$this->name = $name;
}
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*teo 14
请尝试使用以下语句:
use Doctrine\ORM\Mapping as ORM;
Run Code Online (Sandbox Code Playgroud)
代替:
use Doctrine\ORM\Annotation as ORM;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
960 次 |
| 最近记录: |