首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Alice库从数组中随机选择

Alice库从数组中随机选择
EN

Stack Overflow用户
提问于 2016-12-21 12:22:52
回答 2查看 2.2K关注 0票数 5

我正在尝试使用AliceBundle为Symfony框架生成一个虚拟数据。除了我正在寻找一种方法将数组中的数据随机分配给一个名为type的属性外,一切看起来都很好。查看faker图书馆,我可以看到我可以使用randomElement($array = array ('a','b','c'))生成

我正试图把它转换成YML,我认为这相当于

代码语言:javascript
复制
<randomElement(['a','b','c'])>

但这会产生一个错误

Nelmio\Alice\Throwable\Exception\FixtureBuilder\ExpressionLanguage\LexException不能将值"['a'“)列出来。

这是我的完整yml

代码语言:javascript
复制
AppBundle\Entity\Job:
    job{1..5}:
        title: <jobTitle()>
        description: <paragraph(3)>
        length: "3_months_full_time"
        type: <randomElement(['a','b','c'])>
        bonus: <paragraph(3)>
        expired_at: "2016-12-21"
        job_user: "@emp*"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-21 13:26:52

最后我创建了一个自定义提供程序。

代码语言:javascript
复制
namespace AppBundle\DataFixtures\Faker\Provider;

    class JobTypeProvider
    {
        public static function jobType()
        {
            $types = array("paid", "unpaid", "contract");
            $typeIndex = array_rand($types);
            return  $types[$typeIndex];
        }
    }

将其添加到services.yml

代码语言:javascript
复制
app.data_fixtures_faker_provider.job_type_provider:
    class: AppBundle\DataFixtures\Faker\Provider\JobTypeProvider
    tags: [ { name: nelmio_alice.faker.provider } ]

然后在yml文件中使用它。

代码语言:javascript
复制
AppBundle\Entity\Job:
    job{1..50}:
        title: <jobTitle()>
        description: <paragraph(3)>
        length: <jobLength()>
        job_industry: "@title*"
        type: <jobType()>
        bonus: <paragraph(3)>
        expired_at: "2016-12-21"
        job_user: "@emp*"

注意类型:,这是现在从服务中生成的。

票数 1
EN

Stack Overflow用户

发布于 2017-07-30 10:28:49

这对我来说很管用:

代码语言:javascript
复制
parameters:
    profileArray: ['PUBLIC', 'PRIVATE', 'AUTHENTICATED']

JobPlatform\AppBundle\Entity\Profile:
    profiles_{1..100}:
        user: '@user_<current()>'
        visibility: <randomElement($profileArray)>
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41262741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档