我使用PhPUnit、FactoryMuffin和费克在Laravel上使用PostgreSQL db进行测试。在以前版本的FactoryMuffin (Zizaco\FactoryMuff)中,我可以为静态工厂数组中的列和调用FactoryMuff::create的列分配空值。
但是,如果我使用以下定义,这将不再有效:
FactoryMuffin::define('MyModel', array(
'name' => 'word',
'empty' => null,
'another' => 'word'
));当我调用FactoryMuffin::create而不是将NULL传递给statement语句时,它将值保留为空白,因此我得到:
INSERT INTO my_table ("name", "empty", "another") VALUES ('Ralph', , 'Someone');PGSQL不允许。同样的事情发生在
FactoryMuffin::create('MyModel', array('empty' => null));除了实例化模型,然后将null赋值给字段之外,还有什么想法可以绕过这个问题吗?
发布于 2015-05-24 00:38:56
由于FactoryMuffin 2.1 (和3.*)可以利用回调功能,例如:
FactoryMuffin::define('MyModel', array(
'name' => 'word',
'empty' => null,
'another' => 'word'
))->setCallback(function ($object, $saved) {
$object->empty = null;
});在FactoryMuffin 2.1中,回调被设置为定义的第三个参数:
FactoryMuffin::define('MyModel', array(
'name' => 'word',
'empty' => null,
'another' => 'word'
), function ($object, $saved) {
$object->empty = null;
});https://stackoverflow.com/questions/26925035
复制相似问题