topview-digital / laravel-unique-json-rule
1.0
2019-03-14 02:34 UTC
Requires
- php: >=7.0.0
- laravel/framework: ^5.5.0
Requires (Dev)
- fzaninotto/faker: ~1.4
- mockery/mockery: 0.9.*
- orchestra/testbench: ~3.5.0
- phpunit/phpunit: ~6.0
This package is auto-updated.
Last update: 2024-09-19 14:10:32 UTC
README
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)。有关更多信息,请参阅许可证文件。