【问题标题】:Doctrine model array data type教义模型数组数据类型
【发布时间】:2017-01-13 07:23:36
【问题描述】:

我是 Doctrine 的新手,我正在尝试制作一个 MongoDb 模型/集合。我有一个字段languages,它应该是数组。像这样的数组:

$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 = [];
}

如何在学说模型中声明或设置数组字段?

我已阅读文档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;
    }

我收到Invalid type specified "array".

【问题讨论】:

标签: php doctrine-orm orm doctrine


【解决方案1】:

MongoDB ODM 不支持 array 字段类型。请改用hashcollection

来自documentation

  • collection: 数字索引数组到 MongoDB 数组

  • hash: MongoDB 对象的关联数组

【讨论】:

    猜你喜欢
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 2020-07-08
    • 2012-04-21
    • 1970-01-01
    相关资源
    最近更新 更多