【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 %}