From d4bc67b96ebdaa83b264fed151ad96a32a6d4d76 Mon Sep 17 00:00:00 2001 From: evalor Date: Thu, 11 Jul 2019 09:44:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=94=AF=E6=8C=81=E5=8D=95?= =?UTF-8?q?=E7=8B=AC=E8=AE=BE=E7=BD=AE=E5=AD=97=E7=AC=A6=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/DDLBuilder/Blueprints/ColumnBlueprint.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/DDLBuilder/Blueprints/ColumnBlueprint.php b/src/DDLBuilder/Blueprints/ColumnBlueprint.php index dd56370..0d8e95f 100644 --- a/src/DDLBuilder/Blueprints/ColumnBlueprint.php +++ b/src/DDLBuilder/Blueprints/ColumnBlueprint.php @@ -16,6 +16,7 @@ class ColumnBlueprint protected $columnType; // 字段类型 protected $columnLimit; // 字段限制 如 INT(11) / decimal(10,2) 括号部分 protected $columnComment; // 字段注释 + protected $columnCharset; // 字段编码 protected $isUnique; // 唯一的 (请勿重复设置索引UNI) protected $unsigned; // 无符号 (仅数字类型可以设置) @@ -94,6 +95,17 @@ function setColumnComment(string $comment): ColumnBlueprint return $this; } + /** + * 设置字段编码 + * @param string $charset + * @return ColumnBlueprint + */ + function setColumnCharset(string $charset): ColumnBlueprint + { + $this->columnCharset = $charset; + return $this; + } + /** * 是否零填充 @@ -250,11 +262,13 @@ private function parseDataType() function __createDDL(): string { $default = $this->parseDefaultValue(); + $columnCharset = $this->columnCharset ? explode('_', $this->columnCharset)[0] : false; return implode(' ', array_filter( [ '`' . $this->columnName . '`', (string)$this->parseDataType(), + $this->columnCharset ? 'CHARACTER SET ' . strtoupper($columnCharset) . ' COLLATE ' . strtoupper($this->columnCharset) : null, $this->unsigned ? 'UNSIGNED' : null, $this->zeroFill ? 'ZEROFILL' : null, $this->isUnique ? 'UNIQUE' : null,