74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
<?php
 | 
						|
namespace app\validate;
 | 
						|
 | 
						|
use think\Validate;
 | 
						|
 | 
						|
class Article extends Validate
 | 
						|
{
 | 
						|
    protected $rule = [
 | 
						|
        'category_id|栏目' => 'require|>:0',
 | 
						|
        'title|标题'       => 'require|max:255',
 | 
						|
//        'summary|摘要'     => '',
 | 
						|
        'route|路由'       => "routeValidate"
 | 
						|
    ];
 | 
						|
 | 
						|
    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:article,route,' .$id . '|unique:category,route' . '|unique:special_route,route'  );
 | 
						|
    }
 | 
						|
    public function sceneAdd()
 | 
						|
    {
 | 
						|
        return $this->append('route', 'unique:category,route|unique:article,route|unique:special_route,route');
 | 
						|
    }
 | 
						|
 | 
						|
} |