Laravel-使用规则::唯一验证输入



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

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

在上面的例子中,我的输入变量名称是"gameDetails.title",但在数据库中,我的列名只是标题。所以在这种情况下,我有这个错误:

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

那么如何告诉"laravel"我的列名只是"标题"呢?

谢谢。

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 IlluminateValidationRulesUnique
*/
public static function unique($table, $column = 'NULL')
{
return new RulesUnique($table, $column);
}

最新更新