Php 验证数据库上的属性唯一性,但排除当前记录
所以我有一个组织模型,它有一个唯一的属性“username”,我试图为这个属性添加验证规则Php 验证数据库上的属性唯一性,但排除当前记录,php,mysql,laravel,Php,Mysql,Laravel,所以我有一个组织模型,它有一个唯一的属性“username”,我试图为这个属性添加验证规则 <?php namespace Cuadrangular\Users\Validator\Organization; use Cartalyst\Support\Validator; class OrganizationValidator extends Validator implements OrganizationValidatorInterface { /** * {
<?php namespace Cuadrangular\Users\Validator\Organization;
use Cartalyst\Support\Validator;
class OrganizationValidator extends Validator implements OrganizationValidatorInterface {
/**
* {@inheritDoc}
*/
protected $rules = [
'username' => 'required|unique:organizations,username'
];
/**
* {@inheritDoc}
*/
public function onUpdate()
{
$this->rules['username'] .= ',{id},id';
}
}
假设您在更新时有以下示例:
route.php
Route::put('update_profile/{user}', 'UserController@update');
根据您的请求,验证将如下所示:
return[
'username' => 'required|unique:users,username,' . $this->user
];
因此,laravel将检查除当前id用户之外的所有用户名记录