2011-11-14 9 views
0

EDIT DBスキーマをインポートした後:新しい問題、私はいくつかの新しいものを持っている

はSymfony2の、Doctrine2設定ファイルの問題に

を私はそれがすべてをめちゃくちゃにされているXMLファイルであるかなり確信しています。ここで

は、私が進ん方法です:

  1. 私は私がリバースエンジニアリング、私は間の関連付けを固定データベース
  2. をデータベース(SQLスクリプト)
  3. を作成し、自分のデータベーススキーマ
  4. を作りましたテーブル。私のXML confのリポジトリで

のsrc/Creasixtine/AFBundle /リソース/設定/ドクトリン/メタデータ/ 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> 

そして、それとともに、私が手:

お知らせ:未定義のインデックス:/home/adrien/dev/air-france_alphanum/vendor/doctrine/lib/Doctrine/ORM/UnitOfWork.php行のid 1969

旧ポスト

私は(ずっと前に)データベーススキーマをインポートしました。

私はUtilisateur Entity/Classを持っています。 私はsuccessly行うことで、私の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; 
    } 

} 

somoneが助けることができれば、私は非常に感謝します。

+0

こんにちは、これを見てみたいです... http://comments.gmane.org/gmane.comp.php.symfony.users/6144 –

+0

私はすでにこれを見ましたが、それはありませんでした。作業。 – Creasixtine

+0

'GoogleAFBundle:Utilisateur repository 'のコードを表示します。 – tawfekov

答えて

0

私はそれを管理しました。

実際、すべてのデータベースフィールド(mysql)は大文字で生成されていました。

/** 
* @var string $userlogin 
* 
* @ORM\Column(name="USERLOGIN", type="string", length=31, nullable=false) 
*/ 
private $userlogin; 

を私はすべてのフィールドを修正し、それが正常に動作します:次のように私の$userloginフィールドは、USERLOGINにデータベースにマッピングされることになっていました。

1

私は間違っているかもしれませんが、あなたのエンティティファイルにというという名前空間のスペルを間違えたと思います。

namespace GoogleAFBundleEntity; 

は次のようになります。私はそれが役に立てば幸い

namespace GoogleAFBundle\Entity; 

+0

ERRATUM:バックスラッシュの名前を変更して削除しました。私はこれが解決策ではないと恐れています。ありがとう! – Creasixtine

+0

実際に、コピー/ペーストで一部のバックスラッシュが削除されました。私の問題はまだ現状です:( – Creasixtine