Doctrine ManytoOne ArrayCollection仅填充一个值

时间:2016-11-25 13:04:12

标签: doctrine silex

我在两个实体中定义了一个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();
}

用户图表的数据结构: enter image description here

问题是ArrayCollection只在填充表中的最后一项中填充了一个值;例如,对于这些数据,

'1201','4769'
'1202','4769'
'1400','4769'
'1434','4769'
'1435','4769'
'1510','4769'
'2000','4769'
'2050','4769'
'3726','4769'
'3808','4769'
'7950','4769'

ArrayCollection $ charts值在模板树枝

中仅返回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

如何正确修改实体主义声明以获取完整的图表数组?

0 个答案:

没有答案