私は最初の Laravel 4 アプリケーションを構築しており、パスが存在するかどうかを単純にチェックするために Validator クラスを拡張しようとしています。公式の指示に従って、私はこれを思いつきました:
アプリ/ライブラリ/CustomValidator.php:
class CustomValidator extends Illuminate\Validation\Validator {
public function validatePathExists($attribute, $value, $parameters) {
return is_dir($value);
}
}
Validator::resolver(function() {
return new CustomValidator;
});
コントローラー内 (少し省略):
$rules = array(
'path' => 'required|path_exists',
);
$v = Validator::make(Input::get(), $rules);
このコードは、次のメッセージとともに をスローしBadMethodCallException
ます。Method [validatePathExists] does not exist.
自動ロードに追加app/libraries
しましたcomposer.json
:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/libraries"
]
},
そしてもちろん走るcomposer dump-autoload
。実際、同じディレクトリの下に Helper.php があり、正常にapp/libraries
動作しています。
また、app/start/global.php
(ちなみに、なぜ (?) 2 つの場所に同じ自動起動レジスタを持たなければならないのか、よくわかりません)。
ClassLoader::addDirectories(array(
app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
app_path().'/libraries',
));
それでもエラーが発生します。何か案が?あなたの助けに感謝します。