我第一次尝试了Doctrine。我使用了"入门" -Page http://doctrine-orm.readthedocs.org/en/latest/tutorials/getting-started.html
安装完所有内容后,我创建了一个简单的类并生成了数据库。
<?php
// src/testclass.php
/**
* @Entity @Table(name="testclass")
**/
class TestClass
{
/** @Id @Column(type="integer") @GeneratedValue **/
protected $id;
/** @Column(type="string") **/
protected $username;
/** @Column(type="string") **/
protected $password;
... (getter and setter) ...
}
现在,当我尝试创建一个新对象时,保持并刷新它,在数据库中插入两个条目。这是我创建和刷新对象的代码:
<?php
// bootstrap.php
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;
use Doctrine\Common\Collections;
require_once "vendor/autoload.php";
$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/src"), true);
$conn = array(
'driver' => 'mysqli',
'host' => '127.0.0.1',
'dbname' => 'doctrine',
'user' => 'User',
'password' => '123'
);
$entityManager = EntityManager::create($conn, $config);
$nchar = new TestClass();
$nchar->setUsername("Lood");
$nchar->setPassword("789");
$entityManager->persist($nchar);
$entityManager->flush();
在我使用flush之前,表是空的。使用flush后,应该有一个生成id = 1的条目,但是有两个条目包含id和2。
我试图自己弄清楚这个错误,但我找不到任何东西。我不认为这是一个学说问题,因为我甚至没有在互联网上找到任何关于此事的内容。
答案 0 :(得分:0)
我终于解决了这个问题。我使用.htaccess文件来回忆index.php。所以代码运行了两次,只有一个日志文件可以证明这一点。我不知道为什么,但它工作,因为我删除并重新插入文件夹中的.htacces文件。代码每次调用只运行一次。
如果有人知道.htacces文件存在这些问题,我很乐意听到有关此问题的一些信息。