54 lines
991 B
PHP
54 lines
991 B
PHP
<?php
|
|
|
|
namespace Illuminate\Validation\Rules;
|
|
|
|
class Unique
|
|
{
|
|
use DatabaseRule;
|
|
|
|
/**
|
|
* The ID that should be ignored.
|
|
*
|
|
* @var mixed
|
|
*/
|
|
protected $ignore;
|
|
|
|
/**
|
|
* The name of the ID column.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $idColumn = 'id';
|
|
|
|
/**
|
|
* Ignore the given ID during the unique check.
|
|
*
|
|
* @param mixed $id
|
|
* @param string $idColumn
|
|
* @return $this
|
|
*/
|
|
public function ignore($id, $idColumn = 'id')
|
|
{
|
|
$this->ignore = $id;
|
|
$this->idColumn = $idColumn;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* Convert the rule to a validation string.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function __toString()
|
|
{
|
|
return rtrim(sprintf('unique:%s,%s,%s,%s,%s',
|
|
$this->table,
|
|
$this->column,
|
|
$this->ignore ? '"'.$this->ignore.'"' : 'NULL',
|
|
$this->idColumn,
|
|
$this->formatWheres()
|
|
), ',');
|
|
}
|
|
}
|