我正在尝试在 laravel 中创建一个数据库种子,它使用 heredoc 将 xml 结构设置为变量,然后将该变量用作种子中的值之一:
class CodeTableSeeder extends Seeder {
public function run()
{
DB::table('code')->delete();
$xml = <<<RawXML
<?xml version="1.0"?>
<fmxmlsnippet type="FMObjectList">
...
RawXML;
Code::create(array('user_id' => 1, 'code' => $xml));
}
}
当我运行播种机时,我从工匠那里收到一条错误消息:
Seeded: UserTableSeeder
[ErrorException]
Undefined variable: searchValue
我知道这searchValue
是在 xml 代码中:
<Script includeInMenu="True" runFullAccess="False" id="1" name="Perform a Find (searchValue, searchField, LayoutName)">
似乎数据库播种器正在将 xml 文档作为代码而不是 heredoc 字符串读取。有没有办法阻止播种机读取 xml?有没有更好的方法将 xml 包含在种子中?
将 xml 包含在种子中并不是必须的,但最好在其他开发人员的设置过程中保留一个额外的步骤。