2016-03-31 10 views
2

に同じ名前を持つエンティティこんにちは、私は同じ名前の2つのエンティティを使用する必要があるが、別のバンドルからを使用して、2つのsymfonyの

私は私のDBにデータを挿入する方法

use StudentsBundle\Entity\logintrys; 

$em = $this->getDoctrine()->getManager();   
$start = new logintrys(); 
$start->setStudentId($username); 
$start->setLogintrys($array); 

$em = $this->getDoctrine()->getManager(); 

$em->persist($start); 

$em->flush(); 

そしてあります私の第二の挿入クエリは正確にだけ、今私は$を使用)(=新しいlogintrysを開始することはできません最初のものと同じである

<?php 

namespace StudentsBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* logintrys 
* 
* @ORM\Table(name="logintrys") 
* @ORM\Entity(repositoryClass="StudentsBundle\Repository\logintrysRepository") 
*/ 
class logintrys 
{ 
    /** 
    * @var int 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="student_id", type="string", length=20) 
    */ 
    private $studentId; 

    /** 
    * @var array 
    * 
    * @ORM\Column(name="logintrys", type="json_array", nullable=true) 
    */ 
    private $logintrys; 


    /** 
    * Get id 
    * 
    * @return int 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 

    /** 
    * Set studentId 
    * 
    * @param string $studentId 
    * 
    * @return logintrys 
    */ 
    public function setStudentId($studentId) 
    { 
     $this->studentId = $studentId; 

     return $this; 
    } 

    /** 
    * Get studentId 
    * 
    * @return string 
    */ 
    public function getStudentId() 
    { 
     return $this->studentId; 
    } 

    /** 
    * Set logintrys 
    * 
    * @param array $logintrys 
    * 
    * @return logintrys 
    */ 
    public function setLogintrys($logintrys) 
    { 
     $this->logintrys = $logintrys; 

     return $this; 
    } 

    /** 
    * Get logintrys 
    * 
    * @return array 
    */ 
    public function getLogintrys() 
    { 
     return $this->logintrys; 
    } 
} 

エンティティクラス。これが最初の

と同じ名前であるため、ここでの私の質問は、私は同じスクリプトでStudentsBundleとTeachersBundleのlogintrysを使用する方法であるteachersBundle

<?php 

namespace TeachersBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* logintrys 
* 
* @ORM\Table(name="logintrys") 
* @ORM\Entity(repositoryClass="TeachersBundle\Repository\logintrysRepository") 
*/ 
class logintrys 
{ 
    /** 
    * @var int 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="docent_id", type="string", length=20) 
    */ 
    private $docentId; 

    /** 
    * @var array 
    * 
    * @ORM\Column(name="logintrys", type="json_array", nullable=true) 
    */ 
    private $logintrys; 


    /** 
    * Get id 
    * 
    * @return int 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 

    /** 
    * Set docentId 
    * 
    * @param string $docentId 
    * 
    * @return logintrys 
    */ 
    public function setDocentId($docentId) 
    { 
     $this->docentId = $docentId; 

     return $this; 
    } 

    /** 
    * Get docentId 
    * 
    * @return string 
    */ 
    public function getDocentId() 
    { 
     return $this->docentId; 
    } 

    /** 
    * Set logintrys 
    * 
    * @param array $logintrys 
    * 
    * @return logintrys 
    */ 
    public function setLogintrys($logintrys) 
    { 
     $this->logintrys = $logintrys; 

     return $this; 
    } 

    /** 
    * Get logintrys 
    * 
    * @return array 
    */ 
    public function getLogintrys() 
    { 
     return $this->logintrys; 
    } 
} 

の私のエンティティである

ここでは名前が既に使用されて

012であるため、

がlogintrysとしてTeachersBundle \エンティティの\ logintrysを使用することはできませんエラーがあります

は、私はより良い方法は、メインクラスがあなたのlogintrysメンバーを含有する継承を使用することであると思い、事前

+0

使用の両方の問題は何を? – Mattia

+0

TeachersBundle \ Entity \ logintrysを名前として使用しているため、TeachersBundle \ Entity \ logintrysをログインとして使用することはできません。 – Jeroen

+4

TeachersBundle \ Entity \ logintrysをTeacherlogintrysとして使用します。 $ teacherLogin = new Teacherlogintrys(); – Mattia

答えて

-1

でいただきありがとうございます。 PHPであなたがそのような何かを行うことはできません

ので:スクリプトは、インスタンス化するクラスのようなものを知らないので

use StudentsBundle\Entity\logintrys; 
use TeachersBundle\Entity\logintrys; 

この例では、エラーを提供しています。

私はこれが解決策(が常に優れているが、それは動作するはず)だと思います。そのうちの一つを作成するために

class father{  
    private logintrys 
} 

class student extends father{  
    private id; 
    private studentId; 
} 

class teacher extends father{  
    private id; 
    private docentId; 
} 

あなたとあなたのエンティティを呼び出す
$start = new father(); 
$start->setLogintrys($array); 
if($start instanceof student) $start->setStudentId($username); 
0

use StudentsBundle\Entity\logintrys; 

「別名」を追加できます。

http://php.net/manual/en/language.namespaces.importing.php

use StudentsBundle\Entity\logintrys as StudentLogintrys; 
use TeachersBundle\Entity\logintrys as TeacherLogintrys; 
次に、あなたのコードでは、あなたが行うことができます。

$start = new StudentLogintrys(); 
$start2 = new TeacherLogintrys(); 
関連する問題