2016-11-25 3 views
0

移入 enter image description here教義ManytoOneのArrayCollectionは、Iのような2つのエンティティで定義されたArrayCollection関係を有する1つの値

問題は、ArrayCollectionには、移入された表の最後の項目のように見えるもののうちの1つの値だけが移入されることです。このデータについては、例えば、

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

のArrayCollection $チャート値テンプレートで戻っのみ7950は、私が意味をなすように思われた(chart_noのためにも、主キーの識別子を追加しようとした

<ul> 
     {% for chart in user.userscharts %} 
      <li>{{ chart.chartno }}</li> 
     {% endfor %} 
    </ul> 

を小枝)の操作を行います。

/** 
    * @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 
になり

エンティティのドクトリン宣言を正しく変更して、完全なチャートの配列を取得するにはどうすればよいですか?

答えて

1

あなたの関連付けの種類が正しくありません。あるユーザーは、多くのグラフを持つことができるので、関連は$userscharts$charts

class User 
{ 
/** 
* @ORM\OneToMany(targetEntity="App\Entities\Usercharts", mappedBy="user") 
*/ 
private $userscharts; 

public function __construct() 
{ 
    $this->userscharts = new ArrayCollection(); 
} 
..... 

class Usercharts 
{ 

/** 
* @ORM\ManyToOne(targetEntity="App\Entities\User", inversedBy="userscharts") 
* @ORM\JoinColumn(name="id_user", referencedColumnName="id_user") 
*/ 
private $user; 
ため ManyToOneため OneToManyする必要があります
関連する問題