| 
									
										
										
										
											2022-10-08 17:31:39 +08:00
										 |  |  | <?php | 
					
						
							|  |  |  | namespace app\validate; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | use think\Validate; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Article extends Validate | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     protected $rule = [ | 
					
						
							|  |  |  |         'category_id|栏目' => 'require|>:0', | 
					
						
							|  |  |  |         'title|标题'       => 'require|max:255', | 
					
						
							| 
									
										
										
										
											2022-10-11 10:23:21 +08:00
										 |  |  | //        'summary|摘要'     => '',
 | 
					
						
							| 
									
										
										
										
											2022-10-08 17:31:39 +08:00
										 |  |  |         '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'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |