带有AliceBundle的JSON对象夹具

时间:2019-06-04 11:14:47

标签: json symfony doctrine-orm yaml bundle

我正在使用Symfony 4开发PHP应用程序,为此我正在开发单元测试

我想创建固定装置以避免与数据库冲突。
我使用了AliceBundle,但遇到了一些问题。

这是我的实体:

/**
 * @ORM\Table(name="book")
 * @ORM\Entity
 */
class Book
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**

     * @var Type
     *
     * @ORM\ManyToOne(targetEntity="App\Entity\Type", inversedBy="books")
     * @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
     */
    private $type;

    /**
     * @var object
     *
     * @ImportPropertiesConstraint(groups={"propertiesValidation"})
     *
     * @ORM\Column(name="properties", type="json_document")
     */
    private $properties;



    (Getters and Setters)
}

字段属性取决于字段类型,并对应于类 NovelProperties

在数据库中,该字段是与 NovelProperties 实体相对应的 json_document
我使用捆绑的Doctrine JSON ODM来实现。
https://github.com/dunglas/doctrine-json-odm

NovelProperties 实体很简单,仅包含字符串和整数。

这是我的装置文件:

book.yaml

App\Entity\Book:
    book_{1..9}:
        type: '@type_novel'
        properties: "{#type:'App\\Entity\\NovelProperties',pages:100,language:'english'}"

bookType.yaml

App\Entity\Type:
    type_novel:
        name: 'novel'
    type_manga:
        name: 'manga'

为获得属性的价值,我尝试了几种无效的方法:
-将对象作为数组传递(错误:必须是给定数组的对象)
-将对象作为字符串传递(错误:必须是给定字符串的对象)
-将对象作为JSON对象传递(错误:必须是给定字符串的对象)

我已经测试了所有语法。
我不知道该怎么办。

0 个答案:

没有答案