'require|checkExists', 'cost_date' => 'require|dateFormat:Y-m-d', 'media_channel_code' => 'require|checkMediaChannelCode', 'dept_id' => 'require|checkDeptId', 'amount' => 'require|float|egt:0', 'remark' => 'max:255', ]; protected $message = [ 'id.require' => '参数缺失', 'cost_date.require' => '请选择日期', 'cost_date.dateFormat' => '日期格式错误', 'media_channel_code.require' => '请选择自媒体渠道', 'dept_id.require' => '请选择绑定部门', 'amount.require' => '请输入账户消耗金额', 'amount.float' => '账户消耗金额格式错误', 'amount.egt' => '账户消耗金额不能小于0', 'remark.max' => '备注不能超过255个字符', ]; public function sceneAdd() { if (!AccountCost::supportsDeptBinding()) { return $this->remove('id', true)->remove('dept_id', true); } return $this->remove('id', true); } public function sceneEdit() { if (!AccountCost::supportsDeptBinding()) { return $this->remove('cost_date', true)->remove('dept_id', true); } return $this->remove('cost_date', true); } public function sceneDetail() { return $this->only(['id']); } public function sceneDelete() { return $this->only(['id']); } public function checkExists($value) { $model = AccountCost::find($value); if (!$model) { return '记录不存在'; } return true; } public function checkMediaChannelCode($value) { if (!MediaChannelService::isValidCode((string) $value)) { return '自媒体渠道不合法'; } return true; } public function checkDeptId($value) { if (!AccountCost::supportsDeptBinding()) { return true; } $deptId = (int) $value; if ($deptId <= 0) { return '请选择绑定部门'; } if (!Dept::find($deptId)) { return '绑定部门不存在'; } return true; } }