Laravel 문서, API 문서 및 소스 코드를 살펴보면 다음 고유 규칙에있는 id
의 4 번째 매개 변수에 대해 알고있는 사람이 있는지 궁금해하고 있습니까?Laravel 검증 : 고유 규칙 4 번째 매개 변수
'email' => 'unique:users,email_address,NULL,id,account_id,1'
이 규칙의 나의 현재 이해는 다음과 같습니다
users
-이 테이블email_address
을보고 -이 칼럼에 대해 확인NULL
- 우리는 기본 키를 지정할 수있는 곳이 될 것입니다/ID 값은 무시하지만 무시할 가치가 없습니다.이 매개 변수는 본질적으로 무시됩니다.id
- 확실account_id
- 절은,이 열 이름1
입니다 추가 -에서account_id
의 값이 where 절
문서 : 고유을 수행하기위한 http://laravel.com/docs/4.2/validation
기능 담당 규칙 유효성 검사는 \Illuminate\Validation\Validator
의 기능에서 validateUnique($attribute, $value, $parameters)
온라인 949
:
/**
* Validate the uniqueness of an attribute value on a given database table.
*
* If a database column is not specified, the attribute will be used.
*
* @param string $attribute
* @param mixed $value
* @param array $parameters
* @return bool
*/
protected function validateUnique($attribute, $value, $parameters)
{
$this->requireParameterCount(1, $parameters, 'unique');
$table = $parameters[0];
// The second parameter position holds the name of the column that needs to
// be verified as unique. If this parameter isn't specified we will just
// assume that this column to be verified shares the attribute's name.
$column = isset($parameters[1]) ? $parameters[1] : $attribute;
list($idColumn, $id) = array(null, null);
if (isset($parameters[2]))
{
list($idColumn, $id) = $this->getUniqueIds($parameters);
if (strtolower($id) == 'null') $id = null;
}
// The presence verifier is responsible for counting rows within this store
// mechanism which might be a relational database or any other permanent
// data store like Redis, etc. We will use it to determine uniqueness.
$verifier = $this->getPresenceVerifier();
$extra = $this->getUniqueExtra($parameters);
return $verifier->getCount(
$table, $column, $value, $id, $idColumn, $extra
) == 0;
}
건배