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
如何正确修改实体原则声明以获取完整的图表数组?