将数据库模式导入 Symfony2 后,Doctrine2 配置文件将被删除。问题
编辑:新问题
我有一些新东西:
我很确定是 xml 文件搞乱了一切。
我是这样进行的:
- 我制作了自己的数据库方案
- 我创建了数据库(sql 脚本)
- 我对数据库进行了逆向工程
- 我修复了表之间的关联。
在我的 XML conf 存储库中: src/Creasixtine/AFBundle/Resources/config/doctrine/metadata/orm
我有我的所有实体:
Blobs.orm.xml Lieu.orm.xml Operationrre.orm.xml Pn.orm.xml Roles.orm.xml Service.orm.xml Typeoperationmaintenance.orm.xml
Famille.orm.xml Module.orm.xml Outilsn.orm.xml Rolepermission.orm.xml Rre.orm.xml Session.orm.xml Utilisateur.orm.xml
例如,这里是 Utilisateur 的 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="Utilisateur" table="UTILISATEUR">
<change-tracking-policy>DEFERRED_IMPLICIT</change-tracking-policy>
<id name="userid" type="integer" column="USERID">
<generator strategy="IDENTITY"/>
</id>
<field name="userdatecreation" type="date" column="USERDATECREATION"/>
<field name="userdatevalidation" type="date" column="USERDATEVALIDATION"/>
<field name="usermail" type="string" column="USERMAIL" length="255"/>
<field name="userpass" type="string" column="USERPASS" length="255"/>
<field name="uservalide" type="boolean" column="USERVALIDE"/>
<lifecycle-callbacks/>
</entity>
</doctrine-mapping>
: ,我得到:
注意:未定义索引:id位于/home/adrien/dev/air-france_alphanum/vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php第1969行
旧帖子
我(很久以前)导入了数据库模式。
我有一个 Utilisateur 实体/类。 我通过执行以下操作成功在我的 Utilisateur 表中创建了新记录:
function newUser($login, $name, $mail, $pass)
{
$obj = new Utilisateur();
$obj->setUsermail($mail);
$obj->setUserpass($pass);
$obj->setUserlogin($login);
$obj->setUsername($name);
$em = $this->getDoctrine()->getEntityManager();
$em->persist($obj);
$em->flush();
}
现在什么不起作用:我想在数据库中获取现有用户:
$em = $this->container->get('doctrine')->getEntityManager();
$rre_repository = $em->getRepository('GoogleAFBundle:Utilisateur');
$users = $rre_repository->findAll();
我得到一个例外:
Notice: Undefined index: Google\AFBundle\Entity\Utilisateur in /home/adrien/dev/air-france_alphanum/vendor/doctrine/lib/Doctrine/ORM/Mapping/Driver/AbstractFileDriver.php line 121
这是 Utilisateur 类:
<?php
namespace Google\AFBundle\Entity;
use Symfony\Tests\Component\Translation\String;
use Doctrine\ORM\Mapping as ORM;
/**
* Google\AFBundle\Entity\Utilisateur
*
* @ORM\Table(name="UTILISATEUR")
* @ORM\Entity
*/
class Utilisateur
{
/**
* @var integer $userid
*
* @ORM\Column(name="USERID", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $userid;
/**
* @var string $userlogin
*
* @ORM\Column(name="USERLOGIN", type="string", length=31, nullable=false)
*/
private $userlogin;
/**
* @var string $username
*
* @ORM\Column(name="USERNAME", type="string", length=255, nullable=true)
*/
private $username;
/**
* @var date $userdatecreation
*
* @ORM\Column(name="USERDATECREATION", type="date", nullable=true)
*/
private $userdatecreation;
/**
* @var date $userdatevalidation
*
* @ORM\Column(name="USERDATEVALIDATION", type="date", nullable=true)
*/
private $userdatevalidation;
/**
* @var string $usermail
*
* @ORM\Column(name="USERMAIL", type="string", length=255, nullable=true)
*/
private $usermail;
/**
* @var string $userpass
*
* @ORM\Column(name="USERPASS", type="string", length=255, nullable=true)
*/
private $userpass;
/**
* @var boolean $uservalide
*
* @ORM\Column(name="USERVALIDE", type="boolean", nullable=true)
*/
private $uservalide;
/**
* @ORM\OneToMany(targetEntity="Utilroles", mappedBy="userid")
*/
private $utilroles;
/**
* @ORM\OneToMany(targetEntity="Connexion", mappedBy="userid")
*/
private $connexions;
/**
* Get userid
*
* @return integer
*/
public function getUserid()
{
return $this->userid;
}
/**
* Set userdatecreation
*
* @param date $userdatecreation
*/
public function setUserdatecreation($userdatecreation)
{
$this->userdatecreation = $userdatecreation;
}
/**
* Get userdatecreation
*
* @return date
*/
public function getUserdatecreation()
{
return $this->userdatecreation;
}
/**
* Set userdatevalidation
*
* @param date $userdatevalidation
*/
public function setUserdatevalidation($userdatevalidation)
{
$this->userdatevalidation = $userdatevalidation;
}
/**
* Get userdatevalidation
*
* @return date
*/
public function getUserdatevalidation()
{
return $this->userdatevalidation;
}
/**
* Set usermail
*
* @param string $usermail
*/
public function setUsermail($usermail)
{
$this->usermail = $usermail;
}
/**
* Get usermail
*
* @return string
*/
public function getUsermail()
{
return $this->usermail;
}
/**
* Set userpass
*
* @param string $userpass
*/
public function setUserpass($userpass)
{
$this->userpass = $userpass;
}
/**
* Get userpass
*
* @return string
*/
public function getUserpass()
{
return $this->userpass;
}
/**
* Set uservalide
*
* @param boolean $uservalide
*/
public function setUservalide($uservalide)
{
$this->uservalide = $uservalide;
}
/**
* Get uservalide
*
* @return boolean
*/
public function getUservalide()
{
return $this->uservalide;
}
public function __construct()
{
$this->utilroles = new DoctrineCommonCollectionsArrayCollection();
$this->connexions = new DoctrineCommonCollectionsArrayCollection();
}
/**
* Add utilroles
*
* @param Google\AFBundle\Entity\Utilroles $utilroles
*/
public function addUtilroles(GoogleAFBundleEntityUtilroles $utilroles)
{
$this->utilroles[] = $utilroles;
}
/**
* Get utilroles
*
* @return Doctrine\Common\Collections\Collection
*/
public function getUtilroles()
{
return $this->utilroles;
}
/**
* Add connexions
*
* @param Google\AFBundle\Entity\Connexion $connexions
*/
public function addConnexions(GoogleAFBundleEntityConnexion $connexions)
{
$this->connexions[] = $connexions;
}
/**
* Get connexions
*
* @return Doctrine\Common\Collections\Collection
*/
public function getConnexions()
{
return $this->connexions;
}
/**
* Set username
*
* @return Doctrine\Common\Collections\Collection
*/
public function setUsername($username)
{
$this->username = $username;
}
/**
* Get username
*
* @return string
*/
public function getUsername()
{
return $this->username;
}
/**
* Set userlogin
*
* @return Doctrine\Common\Collections\Collection
*/
public function setUserlogin($userlogin)
{
$this->userlogin = $userlogin;
}
/**
* Get userlogin
*
* @return string
*/
public function getUserlogin()
{
return $this->userlogin;
}
}
如果有人可以提供帮助,我将不胜感激。
EDIT : New issue
I have got some new stuff :
I am pretty sure it is the xml files that are messing all up.
Here is how I proceeded :
- I made my own database scheme
- I created the database (sql script)
- I reverse-engineered the database
- I fixed the associations between tables.
In my XML conf repository : src/Creasixtine/AFBundle/Resources/config/doctrine/metadata/orm
I have my all entities :
Blobs.orm.xml Lieu.orm.xml Operationrre.orm.xml Pn.orm.xml Roles.orm.xml Service.orm.xml Typeoperationmaintenance.orm.xml
Famille.orm.xml Module.orm.xml Outilsn.orm.xml Rolepermission.orm.xml Rre.orm.xml Session.orm.xml Utilisateur.orm.xml
And here is, for example, the xml file of Utilisateur :
<?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="Utilisateur" table="UTILISATEUR">
<change-tracking-policy>DEFERRED_IMPLICIT</change-tracking-policy>
<id name="userid" type="integer" column="USERID">
<generator strategy="IDENTITY"/>
</id>
<field name="userdatecreation" type="date" column="USERDATECREATION"/>
<field name="userdatevalidation" type="date" column="USERDATEVALIDATION"/>
<field name="usermail" type="string" column="USERMAIL" length="255"/>
<field name="userpass" type="string" column="USERPASS" length="255"/>
<field name="uservalide" type="boolean" column="USERVALIDE"/>
<lifecycle-callbacks/>
</entity>
</doctrine-mapping>
And with that, I get :
Notice: Undefined index: id in /home/adrien/dev/air-france_alphanum/vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php line 1969
Old post
I have (long ago) imported a database schema.
I have a Utilisateur Entity/Class.
I successly create new recordings in my Utilisateur table by doing :
function newUser($login, $name, $mail, $pass)
{
$obj = new Utilisateur();
$obj->setUsermail($mail);
$obj->setUserpass($pass);
$obj->setUserlogin($login);
$obj->setUsername($name);
$em = $this->getDoctrine()->getEntityManager();
$em->persist($obj);
$em->flush();
}
Now what won't work : I would like to get existing users in database :
$em = $this->container->get('doctrine')->getEntityManager();
$rre_repository = $em->getRepository('GoogleAFBundle:Utilisateur');
$users = $rre_repository->findAll();
And I get an exception :
Notice: Undefined index: Google\AFBundle\Entity\Utilisateur in /home/adrien/dev/air-france_alphanum/vendor/doctrine/lib/Doctrine/ORM/Mapping/Driver/AbstractFileDriver.php line 121
Here is the Utilisateur class :
<?php
namespace Google\AFBundle\Entity;
use Symfony\Tests\Component\Translation\String;
use Doctrine\ORM\Mapping as ORM;
/**
* Google\AFBundle\Entity\Utilisateur
*
* @ORM\Table(name="UTILISATEUR")
* @ORM\Entity
*/
class Utilisateur
{
/**
* @var integer $userid
*
* @ORM\Column(name="USERID", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $userid;
/**
* @var string $userlogin
*
* @ORM\Column(name="USERLOGIN", type="string", length=31, nullable=false)
*/
private $userlogin;
/**
* @var string $username
*
* @ORM\Column(name="USERNAME", type="string", length=255, nullable=true)
*/
private $username;
/**
* @var date $userdatecreation
*
* @ORM\Column(name="USERDATECREATION", type="date", nullable=true)
*/
private $userdatecreation;
/**
* @var date $userdatevalidation
*
* @ORM\Column(name="USERDATEVALIDATION", type="date", nullable=true)
*/
private $userdatevalidation;
/**
* @var string $usermail
*
* @ORM\Column(name="USERMAIL", type="string", length=255, nullable=true)
*/
private $usermail;
/**
* @var string $userpass
*
* @ORM\Column(name="USERPASS", type="string", length=255, nullable=true)
*/
private $userpass;
/**
* @var boolean $uservalide
*
* @ORM\Column(name="USERVALIDE", type="boolean", nullable=true)
*/
private $uservalide;
/**
* @ORM\OneToMany(targetEntity="Utilroles", mappedBy="userid")
*/
private $utilroles;
/**
* @ORM\OneToMany(targetEntity="Connexion", mappedBy="userid")
*/
private $connexions;
/**
* Get userid
*
* @return integer
*/
public function getUserid()
{
return $this->userid;
}
/**
* Set userdatecreation
*
* @param date $userdatecreation
*/
public function setUserdatecreation($userdatecreation)
{
$this->userdatecreation = $userdatecreation;
}
/**
* Get userdatecreation
*
* @return date
*/
public function getUserdatecreation()
{
return $this->userdatecreation;
}
/**
* Set userdatevalidation
*
* @param date $userdatevalidation
*/
public function setUserdatevalidation($userdatevalidation)
{
$this->userdatevalidation = $userdatevalidation;
}
/**
* Get userdatevalidation
*
* @return date
*/
public function getUserdatevalidation()
{
return $this->userdatevalidation;
}
/**
* Set usermail
*
* @param string $usermail
*/
public function setUsermail($usermail)
{
$this->usermail = $usermail;
}
/**
* Get usermail
*
* @return string
*/
public function getUsermail()
{
return $this->usermail;
}
/**
* Set userpass
*
* @param string $userpass
*/
public function setUserpass($userpass)
{
$this->userpass = $userpass;
}
/**
* Get userpass
*
* @return string
*/
public function getUserpass()
{
return $this->userpass;
}
/**
* Set uservalide
*
* @param boolean $uservalide
*/
public function setUservalide($uservalide)
{
$this->uservalide = $uservalide;
}
/**
* Get uservalide
*
* @return boolean
*/
public function getUservalide()
{
return $this->uservalide;
}
public function __construct()
{
$this->utilroles = new DoctrineCommonCollectionsArrayCollection();
$this->connexions = new DoctrineCommonCollectionsArrayCollection();
}
/**
* Add utilroles
*
* @param Google\AFBundle\Entity\Utilroles $utilroles
*/
public function addUtilroles(GoogleAFBundleEntityUtilroles $utilroles)
{
$this->utilroles[] = $utilroles;
}
/**
* Get utilroles
*
* @return Doctrine\Common\Collections\Collection
*/
public function getUtilroles()
{
return $this->utilroles;
}
/**
* Add connexions
*
* @param Google\AFBundle\Entity\Connexion $connexions
*/
public function addConnexions(GoogleAFBundleEntityConnexion $connexions)
{
$this->connexions[] = $connexions;
}
/**
* Get connexions
*
* @return Doctrine\Common\Collections\Collection
*/
public function getConnexions()
{
return $this->connexions;
}
/**
* Set username
*
* @return Doctrine\Common\Collections\Collection
*/
public function setUsername($username)
{
$this->username = $username;
}
/**
* Get username
*
* @return string
*/
public function getUsername()
{
return $this->username;
}
/**
* Set userlogin
*
* @return Doctrine\Common\Collections\Collection
*/
public function setUserlogin($userlogin)
{
$this->userlogin = $userlogin;
}
/**
* Get userlogin
*
* @return string
*/
public function getUserlogin()
{
return $this->userlogin;
}
}
If somone can help, I would greatly appreciate.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
也许我错了,但我认为您在实体文件中拼写错误了命名空间。
应该是:
希望有帮助!
Maybe I'm wrong, but I think you mispelled the namespace in your entity file.
Should be:
I hope it helps!
我已经成功了。
事实上,所有数据库字段(mysql)都是以大写形式生成的。我的
$userlogin
字段将在数据库中映射到USERLOGIN
,如下所示:我更正了所有字段,并且它工作正常。
I've managed it.
In fact, all database fields (mysql) were generated UPPERcase. My
$userlogin
field was to be mapped in database toUSERLOGIN
, as follows :I corrected all fields, and it works properly.