도메인과 사이트 간에는 많은 관계가 있습니다. 나는 새 도메인을 추가 할 때이 오류가 있습니다
유형 교리 \ 공통 \ 모음 \의 ArrayCollection에 협회 Eliophot \ BackBundle \ 엔티티 \ 도메인 # 사이트,하지만 Eliophot \ BackBundle 기대의찾을 실체
: 이것은 내 DomainType입니다public function createDomainAction(Request $request) { $domain = new Domain; if (!$domain) { throw $this->createNotFoundException('Unable to find Domain entity.'); } $newForm = $this->createForm(new DomainType(), $domain); $newForm->handleRequest($request); if ($newForm->isValid()) { $entityManager = $this->get('doctrine')->getManager(); $entityManager->persist($domain); $entityManager->flush(); $this->get('session')->getFlashBag()->add('success', 'Le domaine a été crée'); return $this->redirect($this->generateUrl('domain_list')); } return $this->render('EliophotBackBundle:Domain:new_domain.html.twig', array( 'domain' => $domain, 'form' => $newForm->createView(), )); }
: \ 엔티티 \ 사이트
이 내 DomainController 선택이다
class DomainType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('domainName','text', array(
'label' => 'Nom du domaine'
))
->add('site','entity', array(
'class' => 'EliophotBackBundle:Site',
'property' => 'name',
'label' => 'Sélectionnez un ou plusieurs site(s)',
'multiple' => true
));
}
public function getName()
{
return 'domain';
}
...
}
내 SiteType :
class SiteType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', 'text', array(
'label' => 'Nom du site',
'required' => true
))
->add('nameBundle', 'text', array(
'label' => 'Nom du bundle du site',
'required' => true
))
->add('numClient', 'integer', array(
'label' => 'Numéro client du site',
'required' => true
));
}
public function getName()
{
return 'site';
}
...
}
사이트 엔티티 :
는/**
* Site
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Eliophot\BackBundle\Entity\SiteRepository")
*/
class Site
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* @var string
*
* @ORM\Column(name="name_bundle", type="string", length=255)
*/
private $nameBundle;
/**
* @var integer
*
* @ORM\Column(name="num_client", type="integer")
*/
private $numClient;
/**
* @ORM\OneToMany(targetEntity="Domain", mappedBy="site")
*/
protected $domains;
/**
* Initialisation
*/
public function __construct()
{
$this->domains = new ArrayCollection();
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set name
*
* @param string $name
* @return Site
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Set nameBundle
*
* @param $nameBundle
* @return $this
*/
public function setNameBundle($nameBundle)
{
$this->nameBundle = $nameBundle;
return $this;
}
/**
* Get nameBundle
*
* @return string
*/
public function getNameBundle()
{
return $this->nameBundle;
}
/**
* Set numClient
*
* @param integer $numClient
* @return Site
*/
public function setNumClient($numClient)
{
$this->numClient = $numClient;
return $this;
}
/**
* Get numClient
*
* @return integer
*/
public function getNumClient()
{
return $this->numClient;
}
/**
* Get domains
*
* @return ArrayCollection
*/
public function getDomains()
{
return $this->domains;
}
/**
* Set domains
*
* @param ArrayCollection $domains
*/
public function setDomains(ArrayCollection $domains)
{
$this->domains = $domains;
}
}
도메인 엔티티 : 오류가 말한다
/**
* Domain
*
* @ORM\Table()
* @ORM\Entity
*/
class Domain
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="domain_name", type="string", length=255)
*/
private $domainName;
/**
* @ORM\ManyToOne(targetEntity="Site", inversedBy="domains")
* @ORM\JoinColumn(name="site_id", referencedColumnName="id")
*/
protected $site;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set domainName
*
* @param string $domainName
* @return Domain
*/
public function setDomainName($domainName)
{
$this->domainName = $domainName;
return $this;
}
/**
* Get domainName
*
* @return string
*/
public function getDomainName()
{
return $this->domainName;
}
public function getSite()
{
return $this->site;
}
public function setSite($site)
{
$this->site = $site;
return $this;
}
}
처럼, 내가 심포니 생각은 사이트 개체를 기대하지 arrayCollection ... 내가 추가 한 후 var_dump
요청을 받으면이 사이트에 대한 정보를 얻습니다. 필드 (이 예에서는 내가 "사이트 드 테스트 2"를 "사이트 드 테스트 1"을 선택 한) :
array(2) { [0]=> string(1) "1" [1]=> string(1) "2" }
=>이 질문에
도메인에 대한 도메인 테이블이 새로운 라인을 추가해야합니다어떻게하면됩니까?
엔티티 클래스를 표시 할 수 있습니까? – sebbo
예, pls보세요, 2 개의 엔티티 클래스를 추가하여 답변을 편집합니다 :) – DOZ
그리고 도달하려는 사이트는 하나의 사이트가 여러 개의 도메인을 가질 수 있다는 것입니다. – sebbo