'require|max:255', 'notice_type' => 'require|in:0,1', 'status' => 'require|in:0,1', 'publish_at' => 'require|checkPublishAt', ]; protected $scene = [ 'add' => ['title', 'notice_type', 'status', 'publish_at'], 'edit' => ['title', 'notice_type', 'status', 'publish_at'], ]; protected function checkPublishAt($value): bool { if (is_int($value)) { return $value >= 0; } if (is_string($value)) { if ($value === '') { return false; } if (ctype_digit($value)) { return true; } return strtotime($value) !== false; } return false; } }