kkiernan/validator

基本的表单验证类

1.0.0 2015-06-27 03:48 UTC

This package is auto-updated.

Last update: 2024-09-16 07:05:21 UTC


README

这是一个基于Laravel的[更优越]验证工具的基本表单验证类。我写它是为了自己在简单的手动项目中使用,以及练习和学习。所以,是的。

安装

使用这个类最简单的方法是通过composer。我已经将它添加到Packagist中,主要是为了自己的方便。在已安装composer的终端中,运行以下命令

composer require kkiernan/validator

或者将包添加到你的composer.json文件中,并运行composer install。

Validator

用法

我基本上在这里复制了Laravel的内容。创建一个Kiernan\Validator实例,传入你的数据和验证规则。使用管道分隔符添加多个规则到一个字段。

$validator = new Validator(
	[
		'name' => 'Kelly Kiernan',
		'email' => 'kelly@kellykiernan.com',
		'password' => 'secret',
		'ip_address' => '192.168.0.1',
	],
	[
		'name' => 'required',
		'email' => 'required|email',
		'password' => 'required',
		'ip_address' => 'required|ip',
	]
);

一旦创建了验证器实例,你可以调用Validator::fails()Validator::passes()方法。例如

if ($validator->fails())
{
    // Validation has failed
}

if ($validator->passes())
{
	// Validation has passed
}

如果验证失败,你可以通过调用Validator::messages()来检索错误信息。

print_r($validator->messages());

可用的验证规则

  • 布尔值
  • 电子邮件
  • 浮点数
  • 整数
  • IP地址
  • 必填
  • URL

基于会话的消息

examples/full example展示了使用验证器以及包含的session helper的手动示例。Session类提供了一个简单的方式在会话中存储和检索消息。

用法

Session类使用单例模式提供给你可以调用的静态方法。在使用之前,你必须首先创建session实例。这只是为了确保PHP会话对类可用,这样你就不需要在所有的脚本中检查/启动会话。

Session::create();

Session类有以下方法可用

  • Session::flash();
  • Session::old();
  • Session::has();
  • Session::get();
  • Session::clear();

Session::flash()

向会话添加数据。

Session::flash('success', 'We have received your application. Someone will be in touch shortly.');

Session::old()

检索旧会话数据。如果数据不存在,则返回null。你必须首先将旧数据闪存到会话中

if ($validator->fails())
{
	Session::flash('old', $_POST);

	Session::flash('errors', $validator->messages());

	header('Location: index.php');

	exit;
}

然后可以检索旧数据

<input type="text" name="name" value="<?php echo Session::old('name') ?>">

Session::has()

检查会话中是否存在键。以下示例使用Twitter Bootstrap样式显示一个成功警报。

<?php if (Session::has('success')): ?>
	<div class="alert alert-success">
		<?php echo Session::get('success'); ?>
	</div>
<?php endif; ?>

Session::get()

如果存在,从会话中获取一个值。参见Session::has()示例。

Session::clear()

清除会话数据。这在脚本底部非常有用,如果你不希望在多个页面加载之间保持会话错误、旧数据等。我希望将其集成到Session::flash()方法中,但现在你必须手动调用clear。

Session::clear();