3

私は、Eloquent モデルなどを使用して Slim と Illuminate Database パッケージを使用して API を構築していますREADME。ただし、Laravel スイート全体をインストールせずにモデルで検証機能を使用したいのですが、このライブラリの設計に頭を悩ませることはできません。

これについてどうすればいいですか?Laravel に提供されているドキュメントは、Laravel をすぐに使用できることを期待しているようです。

4

4 に答える 4

10

現在のバージョンのソリューションは次のとおりです: Laravel 5.4. composer.json ファイル:

{ "name": "Validation standalone", "require": { "php": ">=5.6.4", "illuminate/validation": "5.4.*", "illuminate/translation": "5.4.*" } }

"illuminate/translation": "5.4.*" も必要であることに注意してください。そして、あなたのphpファイルで:

use Illuminate\Validation;
use Illuminate\Filesystem;
use Illuminate\Translation;

include 'vendor/autoload.php';

$filesystem = new Filesystem\Filesystem();
$fileLoader = new Translation\FileLoader($filesystem, '');
$translator = new Translation\Translator($fileLoader, 'en_US');
$factory = new Validation\Factory($translator);

$messages = [
    'required' => 'The :attribute field is required.',
];

$dataToValidate = ['title' => 'Some title'];
$rules = [
    'title' => 'required',
    'body' => 'required'
];

$validator = $factory->make($dataToValidate, $rules, $messages);

if($validator->fails()){
    $errors = $validator->errors();
    foreach($errors->all() as $message){
        var_dump($message);
    }
}

ここでは、検証用に提供されたデータの「本文」フィールドを意図的に省略しているため、検証エラーが表示されます。

于 2017-01-31T11:49:39.583 に答える
1

これを提案するのは嫌いですが、Laravel バリデーターはおそらくあなたが望むものではありません。Symfony または Zend Framework (2+) のバリデータ クラスを確認することをお勧めします。それらはスタンドアロンのバリデーターとして非常にうまく機能します。実際、Laravel のフォームとバリデーターのクラスはまったく問題がないため、現在、Laravel プロジェクトで ZF2 フォームのクラスとバリデーターを使用しています。

あなたが聞きたかった答えではないかもしれませんが、長期的には苦痛を和らげるかもしれません。

于 2015-02-18T02:02:20.580 に答える