通过laravel文档看看,API文档和源代码,我想知道如果任何人知道有什么第四参数id在下面的唯一规则是?

'email' => 'unique:users,email_address,NULL,id,account_id,1'

我现在理解这个规则:

  • users看这个表
  • email_address检查对本栏目
  • NULL可能我们可以忽略一个主键/ ID值,但我们也没因此此参数被忽略
  • id不确定
  • account_id-额外的WHERE子句,这是栏目名称
  • 1- The value for_帐户ID在WHERE子句中

文件:http://laravel.com /文档/ 4.2验证

功能负责实施中发现的独特的规则验证\Illuminate\Validation\Validator在功能validateunique(美元美元美元价值,属性,参数)对线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;
}

干杯

分享改善这个问题
 

啊,坚果,我觉得Penny刚落下。

如果我错了请纠正我,但第四个参数是相关的第三个参数,它允许我们指定我们要检查时,忽略了3指定的ID的列。如果不是id

例如,如果主键不id和是user_id相反,我们可以这样做:

'email' => 'unique:users,email_address,NULL,user_id,account_id,1'
分享提高这个答案
 

你是正确的,第四个参数是ID列的名称,如果从不同的“ID”如下图所示:

http:/ / / / / laravel github.com框架4.2 illuminate BLOB / / / / / SRC验证validator.php # l991

分享提高这个答案
 
  • 看这个表arg1美元
  • 2检查对本栏目美元。默认验证密钥(情商:电子邮件)
  • 传统的地方没有价值ARG3 -美元。
  • 传统的地方没有场ARG4美元-。默认为主键
  • 传统的领域-美元ARG5 1附加价值。
分享提高这个答案
 

来自 https://stackoverflow.com/questions/27320281/laravel-validation-unique-rule-4th-parameter