我正在使用PhPUnit,FactoryMuffin和Faker在Laravel中使用PostgreSQL数据库进行测试。在以前版本的FactoryMuffin(Zizaco \ FactoryMuff)中,我可以为静态工厂数组和调用FactoryMuff :: create时的列分配空值。
然而,这不再有效 - 如果我使用以下定义:
FactoryMuffin::define('MyModel', array(
'name' => 'word',
'empty' => null,
'another' => 'word'
));
当我调用FactoryMuffin :: create而不是将NULL传递给SQL INSERT语句时,它将值保留为空,所以我得到:
INSERT INTO my_table ("name", "empty", "another") VALUES ('Ralph', , 'Someone');
哪个PGSQL不允许。使用
也会发生同样的事情FactoryMuffin::create('MyModel', array('empty' => null));
如何解决这个问题,除了实例化模型然后将null分配给字段?
答案 0 :(得分:0)
由于FactoryMuffin 2.1(和3. *),您可以利用回调功能,例如:
FactoryMuffin::define('MyModel', array(
'name' => 'word',
'empty' => null,
'another' => 'word'
))->setCallback(function ($object, $saved) {
$object->empty = null;
});
在FactoryMuffin 2.1中,回调被设置为define的第三个参数:
FactoryMuffin::define('MyModel', array(
'name' => 'word',
'empty' => null,
'another' => 'word'
), function ($object, $saved) {
$object->empty = null;
});