Slim3でバリデーションを実装します。
SlimValidationを使う
公式ドキュメントも合わせてご確認ください。
公式ドキュメント
http://awurth.fr/doc/slim-validation/v3/
まず、インストールをします。
$ composer require awurth/slim-validatio
※PHP7が必要です(v3)
Containerに登録する
containerに登録をします。
$app = new \Slim\App($settings); $container = $app->getContainer(); $container['validator'] = function () { return new \Awurth\SlimValidation\Validator(); };
Controllerで使う
use Respect\Validation\Validator as V;
値が空の場合はエラー扱いにして、「入力してください」というメッセージを出します。
$this->app->validator->validate($request, [ 'title' => [ 'rules' => V::notEmpty(), 'message' => '入力してください' ], 'body' => [ 'rules' => V::notEmpty(), 'message' =>'入力してください' ], ]);
Twigでエラーを表示する
Twigをcontainerに登録する際に拡張として追加をします。
$container['view'] = function ($container) { $settings = $container->get('settings'); $view = new \Slim\Views\Twig($settings['view']['template_path'], $settings['view']['twig']); //Slim Validation $view->addExtension(new Awurth\SlimValidation\ValidatorExtension($container['validator'])); return $view; };
これでSlim Validationの変数を使えるようにります。
<input type="text" name="username" value="{{ val('username') }}"> {% if has_error('username') %}<span>{{ error('username') }}</span>{% endif %}