CDbColumnSchema
鍖 | system.db.schema |
---|---|
缁ф壙 | class CDbColumnSchema » CComponent |
瀛愮被 | CMssqlColumnSchema, CMysqlColumnSchema, COciColumnSchema, CPgsqlColumnSchema, CSqliteColumnSchema |
婧愯嚜 | 1.0 |
鐗堟湰 | $Id: CDbColumnSchema.php 3558 2012-02-09 17:39:04Z alexander.makarow $ |
婧愮爜 | framework/db/schema/CDbColumnSchema.php |
CDbColumnSchema绫绘弿杩版暟鎹〃鐨勫垪鍏冩暟鎹
鍏叡灞炴
灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|---|
allowNull | boolean | 璇ュ垪鏄惁鍙互涓簄ull | CDbColumnSchema |
autoIncrement | boolean | 璇ュ垪鏄惁涓鸿嚜澧炲垪 | CDbColumnSchema |
dbType | string | 璇ュ垪鐨勬暟鎹被鍨嬨 | CDbColumnSchema |
defaultValue | mixed | 璇ュ垪鐨勯粯璁ゅ | CDbColumnSchema |
isForeignKey | boolean | 璇ュ垪鏄惁涓哄閿 | CDbColumnSchema |
isPrimaryKey | boolean | 璇ュ垪鏄惁涓轰富閿 | CDbColumnSchema |
name | string | 鍒楀悕锛堟棤寮曞彿锛夈 | CDbColumnSchema |
precision | integer | 璇ュ垪鏁版嵁鐨勭簿搴︼紝鑻ュ畠鏄竴涓暟銆 | CDbColumnSchema |
rawName | string | 鍘熷鍒楀悕銆傚畠琚紩鐢ㄤ簡浠ヤ究鍦⊿QL鏌ヨ涓娇鐢ㄣ | CDbColumnSchema |
scale | integer | 璇ュ垪鏁版嵁鐨勮妯★紝鑻ュ畠鏄竴涓暟銆 | CDbColumnSchema |
size | integer | 璇ュ垪鐨勫ぇ灏忋 | CDbColumnSchema |
type | string | 璇ュ垪鐨凥P绫诲瀷銆 | CDbColumnSchema |
鍏叡鏂规硶
鍙椾繚鎶ゆ柟娉
鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|
extractDefault() | 鎻愬彇鍒楃殑榛樿鍊笺 | CDbColumnSchema |
extractLimit() | 浠庡垪绫诲瀷涓彁鍙栧ぇ灏忋佺簿纭害鍜岃妯° | CDbColumnSchema |
extractType() | 浠庢暟鎹被鍨嬩腑鎻愬彇PHP绫诲瀷銆 | CDbColumnSchema |
灞炴ц缁
allowNull
灞炴
public boolean $allowNull;
璇ュ垪鏄惁鍙互涓簄ull
autoIncrement
灞炴
锛堝彲鐢ㄨ嚜 v1.1.7锛
public boolean $autoIncrement;
璇ュ垪鏄惁涓鸿嚜澧炲垪
dbType
灞炴
public string $dbType;
璇ュ垪鐨勬暟鎹被鍨嬨
defaultValue
灞炴
public mixed $defaultValue;
璇ュ垪鐨勯粯璁ゅ
isForeignKey
灞炴
public boolean $isForeignKey;
璇ュ垪鏄惁涓哄閿
isPrimaryKey
灞炴
public boolean $isPrimaryKey;
璇ュ垪鏄惁涓轰富閿
name
灞炴
public string $name;
鍒楀悕锛堟棤寮曞彿锛夈
precision
灞炴
public integer $precision;
璇ュ垪鏁版嵁鐨勭簿搴︼紝鑻ュ畠鏄竴涓暟銆
rawName
灞炴
public string $rawName;
鍘熷鍒楀悕銆傚畠琚紩鐢ㄤ簡浠ヤ究鍦⊿QL鏌ヨ涓娇鐢ㄣ
scale
灞炴
public integer $scale;
璇ュ垪鏁版嵁鐨勮妯★紝鑻ュ畠鏄竴涓暟銆
size
灞炴
public integer $size;
璇ュ垪鐨勫ぇ灏忋
type
灞炴
public string $type;
璇ュ垪鐨凥P绫诲瀷銆
鏂规硶璇︾粏
extractDefault()
鏂规硶
protected void extractDefault(mixed $defaultValue)
| ||
$defaultValue | mixed | 浠庡厓鏁版嵁涓幏寰楃殑榛樿鍊笺 |
婧愮爜锛 framework/db/schema/CDbColumnSchema.php#123 (鏄剧ず)
protected function extractDefault($defaultValue)
{
$this->defaultValue=$this->typecast($defaultValue);
}
鎻愬彇鍒楃殑榛樿鍊笺 璇ュ间細琚浆鎹㈠埌姝g‘鐨凱HP绫诲瀷銆
extractLimit()
鏂规硶
protected void extractLimit(string $dbType)
| ||
$dbType | string | 鍒楃被鍨嬨 |
婧愮爜锛 framework/db/schema/CDbColumnSchema.php#107 (鏄剧ず)
protected function extractLimit($dbType)
{
if(strpos($dbType,'(') && preg_match('/\((.*)\)/',$dbType,$matches))
{
$values=explode(',',$matches[1]);
$this->size=$this->precision=(int)$values[0];
if(isset($values[1]))
$this->scale=(int)$values[1];
}
}
浠庡垪绫诲瀷涓彁鍙栧ぇ灏忋佺簿纭害鍜岃妯°
extractType()
鏂规硶
protected void extractType(string $dbType)
| ||
$dbType | string | 鏁版嵁绫诲瀷 |
婧愮爜锛 framework/db/schema/CDbColumnSchema.php#91 (鏄剧ず)
protected function extractType($dbType)
{
if(stripos($dbType,'int')!==false && stripos($dbType,'unsigned int')===false)
$this->type='integer';
else if(stripos($dbType,'bool')!==false)
$this->type='boolean';
else if(preg_match('/(real|floa|doub)/i',$dbType))
$this->type='double';
else
$this->type='string';
}
浠庢暟鎹被鍨嬩腑鎻愬彇PHP绫诲瀷銆
init()
鏂规硶
public void init(string $dbType, mixed $defaultValue)
| ||
$dbType | string | 璇ュ垪鐨勬暟鎹被鍨嬨 |
$defaultValue | mixed | 榛樿鍊 |
婧愮爜锛 framework/db/schema/CDbColumnSchema.php#78 (鏄剧ず)
public function init($dbType, $defaultValue)
{
$this->dbType=$dbType;
$this->extractType($dbType);
$this->extractLimit($dbType);
if($defaultValue!==null)
$this->extractDefault($defaultValue);
}
鏍规嵁瀹冪殑鏁版嵁绫诲瀷鍜岄粯璁ゅ煎垵濮嬪寲璇ュ垪銆 鍚屾椂浼氳缃垪鐨凱HP绫诲瀷锛屽ぇ灏忥紝绮惧害锛岃妯°
typecast()
鏂规硶
public mixed typecast(mixed $value)
| ||
$value | mixed | 杈撳叆鍊 |
{return} | mixed | 杞崲鍚庣殑鍊 |
婧愮爜锛 framework/db/schema/CDbColumnSchema.php#133 (鏄剧ず)
public function typecast($value)
{
if(gettype($value)===$this->type || $value===null || $value instanceof CDbExpression)
return $value;
if($value==='' && $this->allowNull)
return $this->type==='string' ? '' : null;
switch($this->type)
{
case 'string': return (string)$value;
case 'integer': return (integer)$value;
case 'boolean': return (boolean)$value;
case 'double':
default: return $value;
}
}
灏嗚緭鍏ュ艰浆鎹负鏈垪鐨勭被鍨嬨