2016-12-06 3 views
0

私は、データベース内の独自のを確認すると同時に、laravelでURLを検証しようとしていますので、私はこれを使用しています:Laravel 5.2ユニークなURLの検証

'url' => 'required|unique:table,url|url', 

これは結構です、それ理由URLを確認してください: 1)。必要です 2)。 URLは一意です 3)。ここに問題がある:::ギhttp://www.example.comまたはhttp://example.comまたはhttps://www.example.comまたはhttp://www.example.com/testなど..ですすべてが検証に合格します...誰かが入った場合

は、どのように私はそれを行うことができます。これらの例のいずれか(http://www.example.comまたはhttp://example.comhttps://www.example.com)は "example.com"が同じであるためエラーが発生しますか?サブドメインdev.example.com example.comがあるので、私は彼にエラーを与えたいですか?

フィルタを変更する方法は?

おかげ

+0

これを達成するための直接的な方法はありませんが、あなたは最初にメインのドメインを取得する必要があります(例:example.com)を入力から削除します。そのためにexplode()を使うことができます。その後、バリデーター配列の内部でそれを使用します。 –

答えて

0

あなたはこのように、例えば、ホスト名を取得できます。

if (starts_with(Request::root(), 'http://')) 
{ 
    $domain = substr (Request::root(), 7); // $domain is now 'www.example.com' 
} 

か検証する正規表現式を使用してみてください:

フルを解析し、崩壊する単一の正規表現クエリー のパラメータとアンカーを含むURL

^((http [s]?ftp):/)([^:/ \ s] +)((/ \ w +)/)([¥w-.]+[^ ?#\ S] +)()(#[W \ - ] +)$

RexEx位置:。??

URL:正規表現[ '$ &']、

プロトコル: 。正規表現$ 2、

ホスト:正規表現$ 3

パス:。。正規表現$ 4

ファイル:正規表現$ 6

クエリ:。。正規表現$ 7

ハッシュ:正規表現$ 8

+0

ありがとうございました。 – user3150060

関連する問題