2017-01-13 14 views
1

私はDoctrineが新しく、MongoDbモデル/コレクションを作成しようとしています。私はアレイでなければならないフィールドlanguagesを持っています。このような配列:Doctrineモデル配列データ型

$var = [ 
     array("fname"=>"test","lname"=>"test"), 
     array("fname"=>"test","lname"=>"test"), 
     array("fname"=>"test","lname"=>"test"), 
    ]; 

しかし、私の型宣言が動作していないようです。私は持っています:

<?php 


namespace RemoteStaff\Documents; 

use Doctrine\Common\Collections\ArrayCollection; 
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM; 

/** 
* Class CandidateAsl 
* @package RemoteStaff\Documents 
* @ODM\Document(db="prod", collection="candidates_asl") 
*/ 
class CandidateAsl 
{ 
    /** 
    * Constructor class 
    */ 
    public function __construct(){ 
     $this->languages = new ArrayCollection(); 
    } 

    /** 
    * @var String 
    * @ODM\Id(strategy="AUTO", type="string") 
    */ 
    protected $_id; 

    /** 
    * @var string 
    * @ODM\Field(type="string", name="gender") 
    */ 
    private $gender; 

    /** 
    * @var \DateTime 
    * @ODM\Field(type="date", name="birthdate") 
    */ 
    private $birthdate; 

    /** 
    * @var string 
    * @ODM\Field(type="string", name="nationality") 
    */ 
    private $nationality; 

    /** 
    * @var string 
    * @ODM\Field(type="string", name="permanentAddress") 
    */ 
    private $permanentAddress; 

    /** 
    * @var \Doctrine\Common\Collections\ArrayCollection 
    */ 
    private $languages = []; 
} 

私はdoctrineモデルで配列フィールドを宣言または設定しますか?

私はドキュメントhttp://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/basic-mapping.htmlを読んだと

/** 
    * @var array 
    * @ODM\Field(type="array", name="languages") 
    */ 
    private $languages = []; 

    /** 
    * @return mixed 
    */ 
    public function getLanguages() 
    { 
     return $this->languages; 
    } 

    /** 
    * @param mixed $languages 
    */ 
    public function setLanguages($languages) 
    { 
     $this->languages = $languages; 
    } 

しようと、私は arrayフィールドタイプをサポートしていません Invalid type specified "array".

+0

ドキュメントのHTTPを参照してください/ /docs.doctrine-project.org/projects/doctrine-orm /en/latest/reference/basic-mapping.html –

+0

問題は解決していますか? – Timurib

答えて

0

のMongoDB ODMを取得しています。代わりにhashまたはcollectionを使用してください。

documentationより:

  • collection:MongoDBのアレイ

  • hashに数値添字アレイ:MongoDBのオブジェクトへの連想配列