'require|gt:0', // 'name|姓名' => 'require', 'goods' => 'require|checkGoods', ]; protected $message = [ 'company_id.require' => '未选择单位', 'company_id.gt' => '未选择单位', 'name.require' => '请输入姓名', 'goods.require' => '请选择商品', ]; protected $scene = [ ]; protected function checkGoods($value,$rule,$data=[]) { $goods = json_decode($data['goods'],true); if(!$goods){ return '未选择商品'; } $days = []; foreach ($goods as $k=>$v){ $dinner = Db::name('dinner') ->alias('a') ->join('dinner_cate b','b.id = a.cate_id') ->where('a.id',$v['dinner_id']) ->where('a.enable',1) ->where('a.del',0) ->where('b.enable',1) ->where('b.del',0) ->field('b.title,a.day,b.start,b.end') ->find(); if(!$dinner){ return '选择的商品已下架'; } $curTime = date('H:i:s'); if($curTime < $dinner['start']||$curTime > $dinner['end']){ return '['.$dinner['title'].']不再售卖时间内'; } if(in_array($dinner['day'],$days)){ $days[] = $dinner['day']; } } if(count($days) > 1){ return '选择商品错误'; } return true; } }