topview-digital/laravel-unique-json-rule

1.0 2019-03-14 02:34 UTC

This package is auto-updated.

Last update: 2024-09-19 14:10:32 UTC


README

GitHub release Scrutinizer Code Quality Build Status Code Intelligence Status License Total Downloads HitCount

Laravel Unique Json

检查数据库中JSON列中的记录值是否唯一。

实现了Json字段唯一验证规则,并受codezero-be/laravel-unique-translation的启发

要求

  • PHP >= 7.0
  • MySQL >= 5.7
  • Laravel >= 5.5

安装

通过Composer要求此包

composer require topview-digital/laravel-unique-json-rule

Laravel会自动注册ServiceProvider

用法

以下示例

验证联系人数组

您的表单也可以提交联系人数组。

<input name="contact[name]">
<input name="contact[email]">
<input name="contact[phone]">

在这种情况下,我们需要验证整个数组。

$attributes = request()->validate([
    'contact.name' => 'unique_json:clients,contact->name',
    'contact.email' => UniqueJsonRule::for('clients','contact->email'),
]);

忽略具有ID的记录

如果您正在更新记录,您可能希望忽略唯一的检查本身。

$attributes = request()->validate([
    'contact.name' => 'unique_json:clients,contact->name,{$client->id}',
    'contact.email' => UniqueJsonRule::for('clients','contact->email')->ignore($client->id),
]);

忽略具有特定列和值的记录

如果您的ID列具有不同的名称,或者您只想使用另一列

$attributes = request()->validate([
    'contact.name' => 'unique_json:clients,contact->name,{$client->uuid},uuid',
    'contact.email' => UniqueJsonRule::for('clients','contact->email')->ignore($client->uuid,'uuid'),
]);

错误消息

您可以使用以下任一键传递自己的错误消息。首先找到的将被使用。

$attributes = request()->validate([
    'contact.name' => 'unique_json:clients,contact->name,{$client->id}',
], [
    'contact.name.unique_json' => 'Your custom :attribute error.',
]);

变更日志

查看变更日志中的重要更改列表。

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件