123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- namespace app\sys\validate;
- use app\model\Video as VideoModel;
- use think\Validate;
- class Video extends Validate
- {
- // 验证规则
- protected $rule = [
- 'title' => 'require|max:100',
- 'type' => 'require',
- 'label' => 'require',
- 'description' => 'require|max:200',
- // 'video_url' => 'require',
- // 'douyin_url' => 'requireCallback:douyin',
- 'video_url' => 'requireWithout:douyin_url',
- 'douyin_url' =>'requireWithout:video_url',
- 'link' => 'require|pregMatch'
- ];
- // 验证消息
- protected $message = [
- 'title.require' => '请输入标题',
- 'title.max' => '标题最大100个文字长度',
- 'type.require' => '请选择分类',
- 'label.require' => '请选择标签',
- 'description.require' => '请输入视频描述',
- 'description.max' => '描述最大200字长度',
- // 'video_url.require' => '请上传视频',
- // 'douyin_url.requireCallback' => '请上传视频地址进行抓取',
- 'video_url.requireWithout' => '请上传视频',
- 'douyin_url.requireWithout' => '请上传视频地址进行抓取',
- 'link.require' => '请输入抖音地址',
- 'link.pregMatch' => '抖音地址格式错误',
- ];
- // 验证场景
- protected $scene = [
- 'addSave' => ['title', 'type', 'video_url','douyin_url'],
- 'catch' => ['link'],
- ];
- // 视频验证
- public function video($value, $data)
- {
- //判断添加还是修改
- if(!empty($data['id']))
- {
- $video_url = VideoModel::where('id',$data['id'])->value('video_url');
- if(empty($video_url) && $_FILES['video_url']['size'] == 0) return true;
- }else{
- if ($_FILES['video_url']['size'] == 0) return true;
- }
- return false;
- }
- // 视频验证
- public function douyin($value, $data)
- {
- if (empty($data['douyin_url'])) return true;
- return false;
- }
-
- /*
- * 视频抓取检测是否存在
- */
- public function pregMatch($value)
- {
- preg_match('/https:\/\/[\w\/\.]*/', $value, $match);
- return empty($match) ? false : true;
- }
- }
|