'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; } }