6-15ThinkPHP5模型数据类型转换:$type属性设置技巧

6-15ThinkPHP5模型数据类型转换:$type属性设置技巧

施赫退宠颇伴呕叫兼锌席纱恍

6-15ThinkPHP5模型数据类型转换:$type属性设置技巧第1张

数据库表结构修改:将salary属性由int改为float

数据库下载

其中,没有字符串类型,因为数据库中字符串是默认的类型,不需要转换

数据表结构:

6-15ThinkPHP5模型数据类型转换:$type属性设置技巧第2张

将id=10的萌面人的信息改为张无忌的信息

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;
use app\index\model\Staff;
class Index
{
    public function index()
    {
        $staff=Staff::get(10);
        $staff->name="张无忌";
        $staff->age='60';
        $staff->salary='3456.78';
        $staff->hiredate="2010-9-20";
        $staff->isUpdate(true)->save();
    }
}

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\model\Staff.php:

<?php
namespace app\index\model;
use think\Model;//引入Model类
class Staff extends Model
{
    protected $type=[
        'name'=>'array',//姓名:数组型写入
        'age'=>'integer',
        'salary'=>'float',
        'hiredate'=>'timestamp'//入职时间:时间戳形式写入
    ];
}

执行,无提示,表明执行成功

6-15ThinkPHP5模型数据类型转换:$type属性设置技巧第3张

6-15ThinkPHP5模型数据类型转换:$type属性设置技巧第4张

此时,输入的数据都是字符串,存入数据库时按照模型的设置,转化为了相应的类型

获取转换后的数据

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\controller\Index.php:

<?php
namespace app\index\controller;
use app\index\model\Staff;
class Index
{
    public function index()
    {
        $staff=Staff::get(10);
        $staff->name="张无忌";
        $staff->age='60';
        $staff->salary='3456.78';
        $staff->hiredate="2010-9-20";
        $staff->isUpdate(true)->save();

        //获取转换后的数据
        $staff=Staff::get(10);
        echo "转换后的数据<br>";
        dump($staff->name);
        dump($staff->age);
        dump($staff->salary);
        dump($staff->hiredate);

    }
}

执行:

6-15ThinkPHP5模型数据类型转换:$type属性设置技巧第5张

自定义日期输出时的格式

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\model\Staff.php:

<?php
namespace app\index\model;
use think\Model;//引入Model类
class Staff extends Model
{
    protected $type=[
        'name'=>'array',//姓名:数组型写入
        'age'=>'integer',
        'salary'=>'float',
        'hiredate'=>'timestamp:Y/m/d'//入职时间:时间戳形式写入
    ];
}

执行:

6-15ThinkPHP5模型数据类型转换:$type属性设置技巧第6张


查看原始数据:

<?php
namespace app\index\controller;
use app\index\model\Staff;
class Index
{
    public function index()
    {
        $staff=Staff::get(10);
        $staff->name="张无忌";
        $staff->age='60';
        $staff->salary='3456.78';
        $staff->hiredate="2010-9-20";
        $staff->isUpdate(true)->save();

        //获取转换后的数据
        $staff=Staff::get(10);
        echo "转换后的数据<br>";
        dump($staff->name);
        dump($staff->age);
        dump($staff->salary);
        dump($staff->hiredate);

        //查看原始数据
        echo "原始数据:<hr>";
        dump($staff->getData());
    }
}

执行:

6-15ThinkPHP5模型数据类型转换:$type属性设置技巧第7张


将name字段设置为json

D:\phpStudy\PHPTutorial\WWW\tp5\application\index\model\Staff.php:

<?php
namespace app\index\model;
use think\Model;//引入Model类
class Staff extends Model
{
    protected $type=[
        'name'=>'json',//姓名:数组型写入
        'age'=>'integer',
        'salary'=>'float',
        'hiredate'=>'timestamp:Y/m/d'//入职时间:时间戳形式写入
    ];
}

执行:

6-15ThinkPHP5模型数据类型转换:$type属性设置技巧第8张

6-15ThinkPHP5模型数据类型转换:$type属性设置技巧第9张


将name字段设置为序列化

<?php
namespace app\index\model;
use think\Model;//引入Model类
class Staff extends Model
{
    protected $type=[
        'name'=>'serialize',//姓名:序列化写入
        'age'=>'integer',
        'salary'=>'float',
        'hiredate'=>'timestamp:Y/m/d'//入职时间:时间戳形式写入
    ];
}

执行:

6-15ThinkPHP5模型数据类型转换:$type属性设置技巧第10张

6-15ThinkPHP5模型数据类型转换:$type属性设置技巧第11张


6-15ThinkPHP5模型数据类型转换:$type属性设置技巧第12张


蕉巩碱胜祥狭缆辜匪脸阑康独