2016-07-12 18 views
1

Laravel 5.1でカスタム検証ルールを作成する方法を理解するのが難しいです。私はdocumentationを読んだが、不完全なようだ。それを見て、私はちょうどif (stristr($string, 'test')) { ...のような私の実際の検証ロジックを置くはずの場所を見ていない。別のもののためにカスタムLaravel検証ルールの例

、それはエラーメッセージdefintionsが行くべきかの方法/配列には表示されません。

"foo" => "Your input was invalid!", 

"accepted" => "The :attribute must be accepted.", 

// The rest of the validation error messages... 

私の実際のユースケースはやや奇妙なので、この質問のために、のの例を使ってみましょう安全なパスワードを検証します。安全なパスワードは、小文字、大文字、数字、特殊文字を含む8文字以上である必要があります。

実際には、これは非常に難しい例なので、数字をチェックするのはどうですか?または、値に任意の文字列関数を実行していますか?

このような検証ルールはどのように作成されますか?

+0

に割り当てられている

<?php namespace App\Providers; use Validator; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { public function boot() { Validator::extend('yourFunctionNameHere', function($attribute, $value, $parameters, $validator) { return $value == 'yourTestValueHere'; //change the body as you need it }); } } 

は、あなたがこのリンクをチェックしましたか?新しいカスタムバリデーションを追加する方が簡単です。 – Jobayer

+0

@Jobayer私は文字通りそれを私の質問にリンクしました。 – user151841

+0

誰かがフォームにないもので検証したいと思ったら、これで苦労すると思います。私は答えも探しています。 – ClearBoth

答えて

-1

document you've linkedで説明したように、あなたは静的extendメソッドを使用してServiceProviderboot機能、(例えばAppServiceProvider)の内側にあなたの検証ロジックを配置する必要があります。

ここに、簡単な例を示します(ドキュメントの例に関連しています)。 https://laravel.com/docs/5.1/validation#custom-validation-rules - ユーザーの入力は$value

+0

これは私が理解していないことです。 'if(strlen($ string))<12){...'のようなものはどこに置くのですか? – user151841

+0

値はユーザーが挿入したテキスト/文字列です) – manniL

+0

独自のカスタム検証を実際に行ったことがありますか、またはドキュメントからコピーしていますか?あなたの例は私が提起した質問に答えません。 – user151841

関連する問題