【问题标题】:Generating data (using PHP) in a YML fixtures file在 YML 设备文件中生成数据(使用 PHP)
【发布时间】:2011-01-16 03:40:51
【问题描述】:

我想为一个夹具文件生成测试数据。我想生成测试数据,而不必输入数百条记录。

假设我的架构如下图所示:

  foobar_department_def:
    _attributes: { phpName: Department }
    id:
    name:             { type: varchar(64), required: true }

  foobar_qualification_def:
    _attributes: { phpName: Qualification }
    id:
    name:             { type: varchar(64), required: true }


  foobar_employee:
    _attributes: { phpName: Employee }
    id:
    first_name:       { type: varchar(64), required: true }
    last_name:        { type: varchar(64), required: true }
    biography:        { type: longvarchar, required: false }
    qualifi_id:       { type: integer, foreignTable: foobar_qualification_def, foreignReference: id, required: true, onUpdate: cascade, onDelete: restrict }
    dept_id:          { type: integer, foreignTable: foobar_department_def, foreignReference: id, required: true, onUpdate: cascade, onDelete: restrict }
    _uniques:
      idxu_fb_qly_dept:  [qualifi_id, dept_id]

我如何为员工生成测试数据(在我的 YML 文件中使用 PHP)?不久前,我在 Symfony 文档中看到这样做了 - 然而,尽管再次搜索,我无法在 SF 网站上找到该页面(可能它已被删除?)

【问题讨论】:

    标签: php symfony1 yaml


    【解决方案1】:

    我猜你正在寻找dynamic fixtures。请牢记这一点:

    • <?php ?> 语句必须始终开始行或嵌入值中。
    • 如果<?php ?> 语句结束一行,您需要明确输出一个新行(“\n”)。

    【讨论】:

    • 这正是我想要的。谢谢菲利克斯
    【解决方案2】:

    Symfony 曾经(并且可能现在仍然如此)allow PHP in it's configuration YML files,但我不确定夹具文件。但是,听起来您似乎没有必要在 YML 文件中执行 PHP,您只需要创建一个脚本来编写一次巨大的 YML 文件。

    要生成您的固定装置,我建议在您定义的每个表中创建一行,然后将该数据转储到固定装置文件中,以便为您的数据提供一个模板。然后为您的 PHP 脚本使用该夹具模板,用循环中生成的数据替换您的测试值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-25
      • 1970-01-01
      • 2016-08-13
      • 2012-05-01
      • 2013-10-11
      • 2012-02-26
      相关资源
      最近更新 更多