Laravel-使用Rule :: unique验证输入

时间:2018-10-16 19:42:09

标签: laravel

如果变量名称不同于数据库中列的名称,如何验证变量。

 'gameDetails.title' => [
                'required',
                'string',
                'between:3,100',
                Rule::unique('games')->ignore($this->input('gameId')),
            ],

在上面的示例中,我的输入变量名称为“ gameDetails.title”,但在DB中,我的列名称仅为title。所以在这种情况下,我会遇到此错误:

  

SQLSTATE [42S22]:找不到列:1054未知列   “ where子句”中的“ gameDetails.title”

那么如何告诉“ laravel”我的列名只是“ title”?

谢谢。

1 个答案:

答案 0 :(得分:0)

unique验证器采用第二个参数,该参数是数据库中列的名称:

Rule::unique('games','title')->ignore($this->input('gameId'))

  

https://laravel.com/docs/5.7/validation#rule-unique

/**
 * Get a unique constraint builder instance.
 *
 * @param  string  $table
 * @param  string  $column
 * @return \Illuminate\Validation\Rules\Unique
 */
public static function unique($table, $column = 'NULL')
{
    return new Rules\Unique($table, $column);
}