李忠征信平台后端管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

76 lines
2.0 KiB

<?php
namespace app\admin\validate\miniprogram;
use think\Validate;
class Reply extends Validate
{
/**
* 验证规则
*/
protected $rule = [
'keyword' => 'checkUnique|max:1000|unique:miniprogram_reply',
'event_type' => 'checkRequire',
];
/**
* 提示消息
*/
protected $message = [
];
/**
* 验证场景
*/
protected $scene = [
'add' => ['keyword', 'event_type'],
'edit' => ['keyword', 'event_type'],
];
//自定义验证规则
protected function checkRequire($value, $rule, $data=[])
{
if ($value == 'ordinary' && !$data['keyword']) {
return '关键字不能为空';
} else {
$where['keyword'] = $value;
if (isset($data['id'])) {
$where['id'] = ['<>', $data['id']];
}
if (\think\Db::name('miniprogram_reply')->where($where)->value('keyword')) {
return '已经存在请不要重复添加';
}
}
return true;
}
//自定义验证规则
protected function checkUnique($value, $rule, $data=[])
{
$unique_keyword = '';
$arr = explode(',', $value);
if (is_array($arr)) {
$where = [];
if (isset($data['id'])) {
$where['id'] = ['<>', $data['id']];
}
foreach ($arr as $val) {
if (\think\Db::name('miniprogram_reply')->where($where)->where('find_in_set("' . $val . '",keyword)')->value('keyword')) {
$unique_keyword = $val;
continue;
}
}
}
return $unique_keyword ? '关键词“' . $unique_keyword . '”已经存在' : true;
}
public function __construct(array $rules = [], $message = [], $field = [])
{
$this->field = [
'keyword' => __('Keyword'),
'event_type' => __('Event_type'),
];
parent::__construct($rules, $message, $field);
}
}