Doctrine 2文档中的示例

时间:2013-08-30 07:20:39

标签: php doctrine-orm doctrine

我是Doctrine的新手,并以tutorial开头。 这是我bootstrap.php:

<?php
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;

require_once "vendor/autoload.php";

$isDevMode = true;
$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/src"), $isDevMode);


// database configuration parameters
$conn = array(
'driver' => 'pdo_sqlite',
'path' => __DIR__ . '/db.sqlite',
);

// obtaining the entity manager
$entityManager = EntityManager::create($conn, $config); 

和我的Products.php:。

<?php
// src/Product.php
/**
 * @Entity @Table(name="products")
 **/
class Product
{
/** @Id @Column(type="integer") @GeneratedValue **/
protected $id;
/** @Column(type="string") **/
protected $name;

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

public function getName()
{
    return $this->name;
}

public function setName($name)
{
    $this->name = $name;
}
}

现在我做:

$ php vendor/bin/doctrine orm:schema-tool:update --force --dump-sql

但是我的数据库仍然是空的我没有得到产品表。什么错了?
或者我会自己创建这个表?

2 个答案:

答案 0 :(得分:0)

也许您必须向DB写一些内容以生成* .sqlite文件。创建任何脚本(如示例中所示)并查看您的文件是否现在有任何内容

答案 1 :(得分:0)

我做错了。我要创建课程:

<?php
//doctrine-cli.php
use Symfony\Component\Console\Helper\HelperSet,
Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper,
Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper,
Doctrine\ORM\Tools\Console\ConsoleRunner;
require_once __DIR__ . '/bootstrap.php';

$helperSet = new HelperSet(array(
'em' => new EntityManagerHelper($entityManager),
'conn' => new ConnectionHelper($entityManager->getConnection())
));
ConsoleRunner::run($helperSet);

并调用doctrine命令,如:

$ php doctrine-cli.php orm:schema-tool:update --force --dump-sql