|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- <?php
-
-
- namespace yii\db;
-
- use yii\base\Object;
-
-
- class ColumnSchema extends Object
- {
-
-
- public $name;
-
-
- public $allowNull;
-
-
- public $type;
-
-
- public $phpType;
-
-
- public $dbType;
-
-
- public $defaultValue;
-
-
- public $enumValues;
-
-
- public $size;
-
-
- public $precision;
-
-
- public $scale;
-
-
- public $isPrimaryKey;
-
-
- public $autoIncrement = false;
-
-
- public $unsigned;
-
-
- public $comment;
-
-
-
-
- public function phpTypecast($value)
- {
- return $this->typecast($value);
- }
-
-
-
- public function dbTypecast($value)
- {
-
-
- return $this->typecast($value);
- }
-
-
-
- protected function typecast($value)
- {
- if ($value === '' && $this->type !== Schema::TYPE_TEXT && $this->type !== Schema::TYPE_STRING && $this->type !== Schema::TYPE_BINARY && $this->type !== Schema::TYPE_CHAR) {
- return null;
- }
- if ($value === null || gettype($value) === $this->phpType || $value instanceof Expression) {
- return $value;
- }
- switch ($this->phpType) {
- case 'resource':
- case 'string':
- if (is_resource($value)) {
- return $value;
- }
- if (is_float($value)) {
-
- return str_replace(',', '.', (string) $value);
- }
- return (string) $value;
- case 'integer':
- return (int) $value;
- case 'boolean':
-
-
- return (bool) $value && $value !== "\0";
- case 'double':
- return (double) $value;
- }
-
- return $value;
- }
- }
|