Нулевые значения в FactoryMuffin определяют

Я использую PhPUnit, FactoryMuffin а также обманщик для тестирования в Laravel, с базой данных PostgreSQL. В предыдущей версии FactoryMuffin (Zizaco \ FactoryMuff) я мог назначать нулевые значения столбцам как в статическом массиве factory, так и при вызове 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));

Любые идеи, как обойти это, помимо создания экземпляра модели, а затем присвоения нулю для поля?

1

Решение

Начиная с 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;
});
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]