'require|max:20', 'group_id' => 'require|number', 'phone' => 'require', 'category_id' => 'require|number', 'expire_time' => 'date', 'province_id' => 'require', 'city_id' => 'require', 'district_id' => 'require', 'address' => 'require', 'latitude' => 'require', 'longitude' => 'require', 'full_address' => 'require', 'site_domain' => 'checkSiteDomain' ]; protected $message = [ 'site_name.require' => 'validate_site.site_name_require', 'site_name.max' => 'validate_site.site_name_max', 'group_id.require' => 'validate_site.group_id_require', 'group_id.number' => 'validate_site.group_id_number', 'expire_time.number' => 'validate_site.expire_time_number', 'province_id.require' => 'validate_site.site_address_require', 'city_id.require' => 'validate_site.site_address_require', 'district_id.require' => 'validate_site.site_address_require', 'address.require' => 'validate_site.site_address_require', 'latitude.require' => 'validate_site.site_address_require', 'longitude.require' => 'validate_site.site_address_require', 'full_address.require' => 'validate_site.site_address_require' ]; protected $scene = [ 'add' => ['site_name', 'group_id', 'phone', 'category_id'], "edit" => ['site_name', 'group_id', 'phone', 'category_id', 'province_id', 'city_id', 'district_id', 'address', 'full_address', 'latitude', 'longitude'], 'site_set' => ['site_name', 'phone', 'province_id', 'city_id', 'district_id', 'address', 'full_address', 'latitude', 'longitude'], 'admin_set' => ['site_name'] ]; protected function checkSiteDomain($value, $rule, $data = []) { if (empty($value)) return true; $where = [ ['site_domain', '=', $value] ]; if (isset($data['site_id'])) $where[] = ['site_id', '<>', $data['site_id']]; return (new SiteModel())->where($where)->count() ? get_lang("validate_site.site_domain_cannot_repeated") : true; } }