【问题标题】:Alice Bundle : dynamic entity loop parameterAlice Bundle:动态实体循环参数
【发布时间】:2017-02-01 01:10:21
【问题描述】:

我使用Hautelook AliceBundle,它使用Faker 生成带有真实世界数据的夹具。

在 Alice 中,我们可以在 YAML 文件中使用如下参数:

parameters:
  pwd_parameter:   anything

My\UserEntity:
  #generate 10 users with password equals to my parameter
  user_{1..10}:
    password:      '<{pwd_parameter}>' 

是否可以使用参数来生成动态数量的灯具?

我正在寻找的解决方案是这样做:

parameters:
  pwd_parameter:   anything
  nb_users:        10

My\UserEntity:
  #generate nb_users users with password equals to my parameter
  user_{1..nb_users}:   #<---THIS IS THE PROBLEM
      password:    '<{pwd_parameter}>

我试过了:

user_{1..  nb_users   }
user_{1.. <nb_users>  }
user_{1..<{nb_users}> }
user_{1..<{nb_users}> }

抛出:

警告:array_merge():参数 #1 不是数组

如何动态生成我的实体数量?

【问题讨论】:

  • 这是配置,不能这样。除非,您创建捆绑扩展以通过您的代码读取动态捆绑解析并放入参数

标签: symfony faker nelmio-alice alice-fixtures


【解决方案1】:

由于fixture yaml 配置文件不会与symfony 参数合并,因此不可能这样做。

Nelmio\Alice\Fixtures\Fixture\RangeName 是用于验证和解析示例中的配置的类。 查看RangeName::canBuild(),您会看到验证 yaml 密钥的正则表达式。

您可以创建自己的构建器方法,该方法将随机插入的夹具行数。

【讨论】:

  • 谢谢,它让我朝着正确的方向前进。您知道如何将我的自定义构建器添加到现有的构建器中吗?我已经看过 Fixtures\Loader 类,但如果不写在我的供应商类中,我找不到如何添加我的类
  • 参数不是 symfony 的,是 alice 使用的,你可以在password: '&lt;{pwd_parameter}&gt;' 看到
  • 看看:github.com/nelmio/alice/pull/136/commits 有人已经为其创建了拉取请求。它适用于 1.x,但可能会对您有所帮助。
猜你喜欢
  • 1970-01-01
  • 2019-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-29
  • 1970-01-01
  • 2023-01-10
  • 2016-04-24
相关资源
最近更新 更多