0
我已經在兩個實體定義爲這樣一個ArrayCollection關係:學說多對一的ArrayCollection僅填充了一個值
/**
* User
*
* @ORM\Table(name="users", uniqueConstraints= {@ORM\UniqueConstraint(name="email_UNIQUE", columns={"email"})}, indexes={@ORM\Index(name="email_id", columns={"id_user", "email"})})
* @ORM\Entity
*/
class User
{
/**
* @ORM\ManyToOne(targetEntity="App\Entities\Usercharts", inversedBy="charts")
* @ORM\JoinColumn(name="id_user", referencedColumnName="id_user")
*/
private $userscharts;
和
/**
* Useritems
*
* @ORM\Table(name="useritems", indexes={@ORM\Index(name="userid", columns={"id_user"}), @ORM\Index(name="chartno", columns={"chart_no"})})
* @ORM\Entity
*/
class Usercharts
{
/**
* @ORM\OneToMany(targetEntity="App\Entities\User", mappedBy="userscharts")
*
*/
private $charts;
public function __construct()
{
$this->charts = new ArrayCollection();
}
問題是ArrayCollection只填充了一個值,看上去是填充表中的最後一項;例如,對於這個數據,
'1201','4769'
'1202','4769'
'1400','4769'
'1434','4769'
'1435','4769'
'1510','4769'
'2000','4769'
'2050','4769'
'3726','4769'
'3808','4769'
'7950','4769'
中的ArrayCollection $圖表值只返回7950模板樹枝
<ul>
{% for chart in user.userscharts %}
<li>{{ chart.chartno }}</li>
{% endfor %}
</ul>
我嘗試添加主鍵標識也爲chart_no(這似乎是有意義的做):
/**
* @var integer
* @ORM\Id
* @ORM\Column(name="chart_no", type="integer", nullable=false)
*/
private $chartno = '';
但這會導致一個
OutOfBoundsException.php line 40
at OutOfBoundsException::missingPrimaryKeyValue('App\Entities\Usercharts', 'chartno') in AbstractProxyFactory.php line 125
at AbstractProxyFactory->getProxy('App\Entities\Usercharts', array('userid' => '4769')) in UnitOfWork.php line 2698
如何正確修改實體原則聲明以獲取完整的圖表數組?