79 lines
2.0 KiB
PHP
79 lines
2.0 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace app\validate;
|
||
|
|
||
|
use think\Validate;
|
||
|
|
||
|
class Category extends Validate
|
||
|
{
|
||
|
protected $rule = [
|
||
|
'parent_id|父级分类' => 'require|number',
|
||
|
'model_id|所属模型' => 'require|number|gt:0',
|
||
|
'title|标题' => 'require|max:100',
|
||
|
'description|描述' => 'max:255',
|
||
|
'route|路由' =>"routeValidate",
|
||
|
'category_key|标识' =>"alphaDash",
|
||
|
];
|
||
|
|
||
|
protected $message = [
|
||
|
'model_id' => '所属模型必需选择',
|
||
|
'route.routeValidate' => '路由不符合指定规范',
|
||
|
'route.unique' => '路由已存在',
|
||
|
];
|
||
|
|
||
|
protected function routeValidate($value)
|
||
|
{
|
||
|
$chars =preg_replace('/\s+/','',
|
||
|
"/^(
|
||
|
|
||
|
[\/]{1}
|
||
|
|
||
|
(
|
||
|
|
||
|
|
||
|
(
|
||
|
|
||
|
([A-Za-z0-9_-]*[A-Za-z_-]+)
|
||
|
|
|
||
|
([A-Za-z_-]+[A-Za-z0-9_-]*)
|
||
|
)
|
||
|
|
||
|
|
|
||
|
|
||
|
(
|
||
|
([A-Za-z0-9_-]+[A-Za-z_-]+[A-Za-z0-9_-]+)
|
||
|
|
|
||
|
([A-Za-z_-]+[A-Za-z0-9_-]+[A-Za-z_-]+)
|
||
|
)
|
||
|
|
||
|
)
|
||
|
|
||
|
|
||
|
)+
|
||
|
|
||
|
$/");
|
||
|
|
||
|
if ( preg_match($chars, $value)){
|
||
|
return true;
|
||
|
|
||
|
}else{
|
||
|
|
||
|
return "路由不符合指定规范";
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// edit 验证场景定义
|
||
|
public function sceneEdit()
|
||
|
{
|
||
|
$id = input('id/d', 0);
|
||
|
return $this->append('route', 'unique:category,route,' .$id . '|unique:article,route' )
|
||
|
->append("category_key",'unique:category,category_key,' .$id );
|
||
|
}
|
||
|
public function sceneAdd()
|
||
|
{
|
||
|
return $this->append('route', 'unique:category,route|unique:article,route|unique:special_route,route')
|
||
|
->append("category_key",'unique:category,category_key' );
|
||
|
}
|
||
|
|
||
|
}
|