53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						|
 | 
						|
namespace app\validate;
 | 
						|
 | 
						|
use app\model\CommentRule;
 | 
						|
use think\Validate;
 | 
						|
use app\model\Comment as CommentModel;
 | 
						|
 | 
						|
class Comment extends Validate
 | 
						|
{
 | 
						|
    protected $rule = [
 | 
						|
        'comment|评论内容'                 => 'require|checkComment',
 | 
						|
        'user_code|用户'                   => 'require|length:32',
 | 
						|
        'url|图片文件地址'                 => 'length:0,255',
 | 
						|
        'type|类型'                        => 'require|checkType',
 | 
						|
        'lng|定位信息'                      => 'require',
 | 
						|
        'lat|定位信息'                      => 'require',
 | 
						|
        'location|位置信息'                 => 'length:0,200',
 | 
						|
    ];
 | 
						|
 | 
						|
    protected $scene = [
 | 
						|
        'edit_password' => ['old_password', 'password', 'confirm_password'], //修改密码
 | 
						|
    ];
 | 
						|
 | 
						|
    protected function checkType($value,$rule,$data=[])
 | 
						|
    {
 | 
						|
        return isset(CommentModel::allType()[$value]) ? true : '评论类型错误';
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * 检查评论规则
 | 
						|
     * */
 | 
						|
    protected function checkComment($value,$rule,$data=[])
 | 
						|
    {
 | 
						|
        $rule = CommentRule::where("state",CommentRule::COMMON_ON)->select();
 | 
						|
        if($rule->isEmpty()){
 | 
						|
            return true;
 | 
						|
        }
 | 
						|
        foreach ($rule as $item){
 | 
						|
            $font = explode("|",$item["rule"]);
 | 
						|
            foreach ($font as $ruleItem){
 | 
						|
                if(empty(trim($ruleItem))){
 | 
						|
                    continue;
 | 
						|
                }
 | 
						|
                if(strpos($value,trim($ruleItem))!=false){
 | 
						|
                    return "评论内容不能包含敏感词语";
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return true;
 | 
						|
 | 
						|
    }
 | 
						|
} |