Nit*_*oon 6 php validation laravel-5
例如,我有2个表:sites1和sites2
我需要检查url来自我的html表单的字段是否唯一.
这是我的验证规则:
public function rules()
{
return [
'url' => unique:sites1|unique:sites2'
];
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,此规则仅适用于sites2表格.有没有可能的方法来验证两个表?
您的验证规则似乎没问题.只需确保两者sites1和sites2表都具有字段名称,url并且两者都在同一个数据库中.
您的unique:sites1规则将被翻译为SQL
select count(*) as aggregate from `sites1` where `url` = ?
Run Code Online (Sandbox Code Playgroud)
虽然unique:sites2规则将被翻译成SQL
select count(*) as aggregate from `sites2` where `url` = ?
Run Code Online (Sandbox Code Playgroud)
查看第一个SQL是否返回结果.如果使用有限的索引长度,长URL可能会导致非唯一.如果您可以存储URL的哈希值,那么您可以更好地使用哈希来比较URL.
小智 6
无需在两个不同的表中保持相同的名称
在laravel 4.2
Validator::make(Input::all, [
'url' => 'unique:site1,your_column_name|unique:site2:your_column_name_2'
]);
Run Code Online (Sandbox Code Playgroud)
Laravel 5.*:
$this->validate($request,[
'url' => 'unique:site1,your_column_name|unique:site2:your_column_name_2'
]);
Run Code Online (Sandbox Code Playgroud)
希望它工作正常.
| 归档时间: |
|
| 查看次数: |
7661 次 |
| 最近记录: |