Laravel验证器 - 连接到数据库

时间:2015-07-19 16:03:38

标签: php validation unit-testing laravel phpunit

我在Laravel的验证规则中有数据库限制:

$rules = [
    'customer_id' => 'required|id|unique:customers|min:1',
];

// (...)

$validator = Validator::make($dataToSave, $rules);

在本地机器上,测试通过,一切都很好。但是在构建服务器(Bamboo)上,没有安装数据库,PHPUnit失败,因为它无法连接到数据库。当我删除unique:customers规则时,测试通过。

如何重构代码,因此无论环境如何,phpunit测试都会通过?

1 个答案:

答案 0 :(得分:1)

使用unique规则你必须有数据库连接。没有变种。 它检查数据库中行之间的值是否唯一。

在本地计算机上确定 - 因为你有连接。 在远程NOT OK - 因为你没有连接。

只需在您的Bamboo上安装数据库和迁移。 否则,删除unique:customers|将破坏您的应用程序逻辑。

BUT。如果customerscustomer_id被定义为数据库表中的唯一键,则可以在保存数据时删除此unique:customers|并捕获错误(如果未传递唯一值)