validation
本工具简单封装了Illuminate\Validation 使其使用起来更加方便 ,需要new一个表单 添加rules 等, (*1)
composer文件代码:
"sunny/validation":"dev-master"
使用方法:, (*2)
class TestForm extends Libs\Tools\Form
{
public function __construct($data)
{
parent::__construct($data);
}
public function rules()
{
return [
'title' => 'required|string|min:2|max:5',
'status' => 'required|integer'
];
}
}
2、调用:
$data = [
'title' => '123457',
'status' => 'werwer',
];
$validator = (new TestForm($data))->make();
if ($validator->fails()) {
echo 'fail' . "<br>";
foreach ($validator->errors()->getMessages() as $key => $error) {
echo $error[0] . "<br>";
}
} else {
echo 'ok';
}
3、运行效果图
, (*3)
4、添加自定义验证
完整的form例子如下:, (*4)
use Libs\Tools\Form;
class TestForm extends Form
{
public function __construct($data)
{
parent::__construct($data);
$this->extend();
}
public function rules()
{
return [
'title' => 'required|string|min:2|max:5',
'status' => 'required|integer',
'test' => 'required|string|foo'
];
}
public function attributes()
{
return [
'status'=>'状态',
'test'=>'测试',
]; // TODO: Change the autogenerated stub
}
public function messages()
{
return [
'foo' => ':attribute 不等于foo',
]; // TODO: Change the autogenerated stub
}
public function extend(){
$this->_valid->extend('foo', function ($attribute, $value, $parameters) {
return $value == 'foo';
});
}
}
例子二, (*5)
```php
$data = [
'title' => '123457', 'status' => 'werwer',
'test' => 'fooddd'
];, (*6)
$validator = (new TestForm($data))->make();
if ($validator->fails()) {
$this->assign('errors', $validator->errors());
} else {
echo 'ok';
}
$this->assign('form', $data);
$this->display();
html模板如下:
```html
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>form</title>
<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
</body>
</html>
运行效果图, (*7)
, (*8)
更多用法请参考:
laravel validation, (*9)