【slim3】slim3にValidation(バリデーション)入れる
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 %}