自動生成されたフォームを使用して新しいUserProfileを追加すると、次のエラーが表示されます。エラーは次のとおりです: オブジェクトが必要ですがコレクションがあります。エンティティフィールドに "multiple = true"を渡すことを忘れましたか?symfony 2 - 1対1のマッピング
私はsymfonyの2.0.12
これはのUserProfileエンティティのための私のコードで使用しています。コントローラーで問題が発生しましたが、解決方法がわかりません。助けてください。
<?php
namespace Infidia\OutsourceBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
/**
* Infidia\OutsourceBundle\Entity\UserProfile
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Infidia\OutsourceBundle\Entity\UserProfileRepository")
*/
class UserProfile
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
*
* @ORM\OneToOne(targetEntity="User")
* @orm:JoinColumn(name="userid", referencedColumnName="id")
*/
private $user;
/**
* @var integer $userid
*/
private $userid;
/**
* @var text $street_address
*
* @ORM\Column(name="street_address", type="text")
*/
private $street_address;
/**
* @var string $city
*
* @ORM\Column(name="city", type="string", length=255)
*/
private $city;
/**
* @var string $country
*
* @ORM\Column(name="country", type="string", length=255)
*/
private $country;
/**
* @var string $zipcode
*
* @ORM\Column(name="zipcode", type="string", length=255)
*/
private $zipcode;
/**
* @var string $timezone
*
* @ORM\Column(name="timezone", type="string", length=12)
*/
private $timezone;
/**
* @var string $contact_no
*
* @ORM\Column(name="contact_no", type="string", length=20)
*/
private $contact_no;
/**
* @var date $birthday
*
* @ORM\Column(name="birthday", type="date")
*/
private $birthday;
/**
* @var string $gender
*
* @ORM\Column(name="gender", type="string", length=15)
*/
private $gender;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set street_address
*
* @param text $streetAddress
*/
public function setStreetAddress($streetAddress)
{
$this->street_address = $streetAddress;
}
/**
* Get street_address
*
* @return text
*/
public function getStreetAddress()
{
return $this->street_address;
}
/**
* Set city
*
* @param string $city
*/
public function setCity($city)
{
$this->city = $city;
}
/**
* Get city
*
* @return string
*/
public function getCity()
{
return $this->city;
}
/**
* Set country
*
* @param string $country
*/
public function setCountry($country)
{
$this->country = $country;
}
/**
* Get country
*
* @return string
*/
public function getCountry()
{
return $this->country;
}
/**
* Set zipcode
*
* @param string $zipcode
*/
public function setZipcode($zipcode)
{
$this->zipcode = $zipcode;
}
/**
* Get zipcode
*
* @return string
*/
public function getZipcode()
{
return $this->zipcode;
}
/**
* Set timezone
*
* @param string $timezone
*/
public function setTimezone($timezone)
{
$this->timezone = $timezone;
}
/**
* Get timezone
*
* @return string
*/
public function getTimezone()
{
return $this->timezone;
}
/**
* Set contact_no
*
* @param string $contactNo
*/
public function setContactNo($contactNo)
{
$this->contact_no = $contactNo;
}
/**
* Get contact_no
*
* @return string
*/
public function getContactNo()
{
return $this->contact_no;
}
/**
* Set birthday
*
* @param date $birthday
*/
public function setBirthday($birthday)
{
$this->birthday = $birthday;
}
/**
* Get birthday
*
* @return date
*/
public function getBirthday()
{
return $this->birthday;
}
/**
* Set gender
*
* @param string $gender
*/
public function setGender($gender)
{
$this->gender = $gender;
}
/**
* Get gender
*
* @return string
*/
public function getGender()
{
return $this->gender;
}
/**
* Set experience
*
* @param \Infidia\OutsourceBundle\Entity\text $experience
*/
public function setExperience($experience)
{
$this->experience = $experience;
}
/**
* Get Experience
*
* @return \Infidia\OutsourceBundle\Entity\text
*/
public function getExperience()
{
return $this->experience;
}
/**
* Set UserId
*
* @param int $userid
*/
public function setUserid($userid)
{
$this->userid = $userid;
}
/**
* Get UserId
* @return int
*/
public function getUserid()
{
return $this->userid;
}
public function __construct()
{
$this->user = new ArrayCollection();
}
/**
* Set user
*
* @param Infidia\OutsourceBundle\Entity\User $user
*/
public function setUser(\Infidia\OutsourceBundle\Entity\User $user)
{
$this->user = $user;
}
/**
* Get user
*
* @return Infidia\OutsourceBundle\Entity\User
*/
public function getUser()
{
return $this->user;
}
}
私のために働いた。これは1対1の関係であるため、複数は真実であってはなりません。私はまた、UserProfileからコンストラクタを削除しました。ありがとう。 – biztiger
常に喜んで助けてください –