Laravel 4 で独自のバリデーション クラスを作成しようとしています。これを行うために、 という新しいディレクトリを作成しましたapp/validators
。次に、このディレクトリをcomposer.json
クラスマップに追加して、次composer update
のように実行しました。
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/validators", <- added here
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
私の検証クラスは次のようになります。
class LinkValidation extends Illuminate\Validation\Validator {
{
public function validateHost($field, $value, $params)
{
return $value == 'test';
}
}
私のコントローラーでは、バリデーターを次のように拡張しようとしています:
Validator::extend('awesome', 'LinkValidation@supportedHost');
ただし、ページをロードするときに次のエラーが発生します。
{
"error":{
"type":"ReflectionException",
"message":"Class LinkValidation does not exist",
"file":"C:\\xampp\\htdocs\\laravel\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php",
"line":301
}
}
Laravel がクラスをロードしない理由はありますか? コンポーザーのクラスマップに追加すれば自動的に実行されると思いました。