使用Nemo / Alice包导入DateTime

时间:2014-08-20 16:03:49

标签: symfony datetime yaml fixtures

我的问题是关于这个捆绑:https://github.com/nelmio/alice与Symfony2结合使用。

我想在我的新网站上加载一些装置,这个包非常适合。我创建了一些YML文件,并将以下YML视为我的fixturedata:

DateTime (local):
    news-date-1:
        __construct: ['2014-07-01']

Stef\BVBundle\Entity\Blog:
    StefBVBundle-Blog-1:
        title: 'A day with blah'
        blog: 'e5645646'
        image: 'beach.jpg'
        author: 'dsyph3r'
        tags: 'symfony2, php, paradise, symblog'
        created: @news-date-1
        updated: @news-date-1
    StefBVBundle-Blog-2:
        id: 1
        title: 'meeeh'
        author: dsyph3r
        blog: '5rw5425'
        image: beach.jpg
        tags: 'symfony2, php, paradise, symblog'
        created: '2014-07-01T00:00:00+0200'
        updated: '2014-07-01T00:00:00+0200'

标有' StefBVBundle-Blog-1'就像一个魅力,它知道'创造'并且'更新了'是\ DateTime值。

但是' StefBVBundle-Blog-2'导致错误,因为Nemo / Alice捆绑认为它是一个字符串,而不是DateTime。是否可以将DateTime-part内联?

2 个答案:

答案 0 :(得分:19)

PHP表达式<()>简单地传递给Doctrine,所以这将完成工作:

Stef\BVBundle\Entity\Blog:
    StefBVBundle-Blog-2:
        created: <(new \DateTime('2014-02-02'))>

答案 1 :(得分:3)

关于Faker库的文档,如果你想要一个确切的日期,你必须指定一个DateTime实例,或者没有时间圈的DateTimeBetween。

您的代码,有更正:

DateTime (local):
    news-date-1:
        __construct: ['2014-07-01']

Stef\BVBundle\Entity\Blog:
    StefBVBundle-Blog-1:
        title: 'A day with blah'
        blog: 'e5645646'
        image: 'beach.jpg'
        author: 'dsyph3r'
        tags: 'symfony2, php, paradise, symblog'
        created: @news-date-1
        updated: @news-date-1
    StefBVBundle-Blog-2:
        id: 1
        title: 'meeeh'
        author: dsyph3r
        blog: '5rw5425'
        image: beach.jpg
        tags: 'symfony2, php, paradise, symblog'
        created: <dateTimeBetween('0 days', '2014-07-01T00:00:00+0200')>
        updated: <dateTimeBetween('0 days', '2014-07-01T00:00:00+0200')>

没有尝试,但应该工作。