0

私は最初の 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',

));

それでもエラーが発生します。何か案が?あなたの助けに感謝します。

4

1 に答える 1