我正在尝试使用AliceBundle为Symfony框架生成一个虚拟数据。除了我正在寻找一种方法将数组中的数据随机分配给一个名为type的属性外,一切看起来都很好。查看faker图书馆,我可以看到我可以使用randomElement($array = array ('a','b','c'))生成
我正试图把它转换成YML,我认为这相当于
<randomElement(['a','b','c'])>但这会产生一个错误
Nelmio\Alice\Throwable\Exception\FixtureBuilder\ExpressionLanguage\LexException不能将值"['a'“)列出来。
这是我的完整yml
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*"发布于 2016-12-21 13:26:52
最后我创建了一个自定义提供程序。
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中
app.data_fixtures_faker_provider.job_type_provider:
class: AppBundle\DataFixtures\Faker\Provider\JobTypeProvider
tags: [ { name: nelmio_alice.faker.provider } ]然后在yml文件中使用它。
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*"注意类型:,这是现在从服务中生成的。
发布于 2017-07-30 10:28:49
这对我来说很管用:
parameters:
profileArray: ['PUBLIC', 'PRIVATE', 'AUTHENTICATED']
JobPlatform\AppBundle\Entity\Profile:
profiles_{1..100}:
user: '@user_<current()>'
visibility: <randomElement($profileArray)>https://stackoverflow.com/questions/41262741
复制相似问题