Laravel 5 multiple table unique validation
Your validation rule seems ok. Just make sure that both sites1
and sites2
table has field name url
and both in same database.
Your unique:sites1
rule will be translated into SQL
select count(*) as aggregate from `sites1` where `url` = ?
While unique:sites2
rule will be translated into SQL
select count(*) as aggregate from `sites2` where `url` = ?
See if first SQL does return result. Long URL may result non unique if used with limited index length. It may be better if you could store hash value of URL so you can compare url just by using hash.
No need to maintain the same name in two different tables
In laravel 4.2
Validator::make(Input::all, [
'url' => 'unique:site1,your_column_name|unique:site2:your_column_name_2'
]);
Laravel 5.*:
$this->validate($request,[
'url' => 'unique:site1,your_column_name|unique:site2:your_column_name_2'
]);
Hopefully it's working fine.