필자는 구현하고자하는 공통적 인 사용 사례가 있지만 Symfony Sonata Admin Bundle (ORM)과 관련된 몇 가지 문제에 부딪치고 있습니다. 내 모델은 시설, 스포츠, 시설 및 스포츠 시설의 세 가지 항목을 기반으로 한 스포츠와의 관계가 있습니다. 나는 예제를 따르고 다음 클래스 (관련 부분 만)에 정의되어 있습니다. 내 FacilityAdmin 클래스에서일대 다 관계에 sonata_type_collection을 사용할 때의 문제
class Sport {
/**
* Bidirectional - Many facilies are related to one sport
*
* @ORM\OneToMany(targetEntity="SportsFacility", mappedBy="sport")
*/
protected $facilities;
public function getFacilities() {
return $this->facilities;
}
public function setFacilities($facilities) {
$this->facilities = $facilities;
return $this;
}
}
class Facility {
/**
* Bidirectional - Many sports are related to one facility
*
* @ORM\OneToMany(targetEntity="SportsFacility", mappedBy="facility")
*/
protected $sports;
public function getSports() {
return $this->sports;
}
public function setSports($sportsFacilities) {
$this->sports = $sportsFacilities;
return $this;
}
public function addSports($sportsFacilities) {
$this->sports = $sportsFacilities;
return $this;
}
}
class SportsFacility {
/**
* @var integer $sportsFacilityId
*
* @ORM\Column(name="sportsFacilityId", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $sportsFacilityId;
/**
* Bidirectional - Many Sports are related to one Facility (OWNING SIDE)
*
* @ORM\ManyToOne(targetEntity="Sport", inversedBy="facilities"))
* @ORM\JoinColumn(name="sportId", referencedColumnName="sportId"))
*/
protected $sport;
/**
* Bidirectional - Many Facilities are related to one Sport (OWNING SIDE)
*
* @ORM\ManyToOne(targetEntity="Facility", inversedBy="sports"))
* @ORM\JoinColumn(name="facilityId", referencedColumnName="facilityId"))
*/
protected $facility;
public function getSportsFacilityId() {
return $this->sportsFacilityId;
}
public function setSportsFacilityId($sportsFacilityId) {
$this->sportsFacilityId = $sportsFacilityId;
return $this;
}
public function getSport() {
return $this->sport;
}
public function setSport($sport) {
$this->sport = $sport;
return $this;
}
public function getFacility() {
return $this->facility;
}
public function setFacility($facility) {
$this->facility = $facility;
return $this;
}
}
내가 가진 :
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('name')
->with('Sports')
->add('sports', 'sonata_type_collection',
array('by_reference' => false),
array(
'edit' => 'inline',
'inline' => 'table',
))
->end();
}
나는 새로운 관계를 추가하려고, 나는 다음과 같은 오류 얻을 : 유형 "배열 또는 \에 이동"의 예상 인수를, "명확성을 \ CoachTimeBundle \ Entity \ SportsFacility "vendor/sonata-project/admin-bundle/Sonata/AdminBundle/Form/EventListener/ResizeFormListener.php 줄 88에서 제공"
가에 대해 당신에게 확신 진화하지 않았다 sportsFacility 클래스의 주석에 @ORM \ ManyToOne (targetEntity = "Sport", inversedBy = "facilities"))을 닫습니까? – Thomas
이 문제도 있습니다 (그러나 관계 엔티티에 is_active를 추가했습니다). 나는 많은 사람들이이 [일종의 해결책] (https://github.com/sonata-project/SonataDoctrineORMAdminBundle/issues/145)을 사용하는 것을 보았다. (부분적으로는 내 상황에서) – DEY
문제? 비슷한 문제가 있습니다. http://stackoverflow.com/questions/15629225/symfony2-1m-11-relationship-and-sonata-admin-form –