のは、我々は次のカスタムバリデータを持っているとしましょう:検証名によって示唆されるようにLaravelのカスタム検証方法で既存の検証方法を再利用するにはどうすればよいですか?
は、私は、電子メールアドレスのMXレコードの検証を作成したいです。最初のことは最初ですが、電子メールアドレスの形式を確認することは有効です。
<?php
namespace Illuminate\Validation;
class Validator implements ValidatorContract
{
/**
* Validate that an attribute is a valid e-mail address.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
protected function validateEmail($attribute, $value)
{
return filter_var($value, FILTER_VALIDATE_EMAIL) !== false;
}
}
しかし、理想的な世界では、私はDRY原則に固執したい:今、私は単純によく知ら機能を使用していますValidator
クラス自体から既存の検証ロジックをコピーする場合、これは十分に単純であることを知っています。
カスタムバリデーター内でこのメソッドを呼び出す方法があるかどうかは疑問です。例えば。 (動作しません):。
この質問に対する唯一の解決策は、自分自身を繰り返さない方法であり、Laravel電子メールバリデーターにピギーバックすることです。今のところ、私はただ既存のロジックをコピーします。
これが可能であれば、私は他の検証方法を強化する道を開いているので、単にペダンティカルであるという問題ではありません。
あなたは常に静的クラス –
でそれらを置くことができます(静的クラス内で、この検証ルールを置くことにより – Jonathan
について詳しく説明することができますしてください静的関数)では、シングルトンやオブジェクトの通過を必要とせずにどこからでも検証関数を呼び出すことができます。 –