模型curd操作练习

Original 2019-01-23 14:06:30 265
abstract:一.创建模型    php artisan make:model models/GoodsModel  在app/models里创建一个GoodsModel  对应数据表goods      模型访问器:就是当使用模型操作时触发   getCreateTime

一.创建模型

    php artisan make:model models/GoodsModel  在app/models里创建一个GoodsModel  对应数据表goods  

    模型访问器:就是当使用模型操作时触发   getCreateTimeAttribute($value){...}

    模型修改器:就是当使用模型写操作时触发(删除操作不算) setCreateTimeAttribute($value){...}

    以上两个方法仅适用于模型操作,查询构造器方法不触发(都是驼峰写法)

//指定数据表
protected $table = 'goods'; //默认指定goodss
//指定主键
protected $primaryKey = 'id';   //默认id
//托管自动时间戳
public $timestamps = true;
//时间戳格式
protected $dateFormat = 'U';    //unix
//指定创建时间字段
const CREATED_AT = 'create_time';   //默认create_at
//指定更新时间字段
const UPDATED_AT =  'update_time';  //默认update_at

//创建模型访问器
public function getCreateTimeAttribute($value)
{
    return date('Y-m-d ',$value);    //查询创建时间  将格式改一下
}
public function getUpdateTimeAttribute($value)
{
    return date('Y-m-d ',$value);    //查询更新时间  将格式改一下
}

//创建模型修改器
public function setNameAttribute($value)
{
    return '【'.$value.'】';    //当修改name的时候 ,加点修饰
}

------------------------------------------------------------------------------

二.查询操作

    GoodsModel::all()查询全部数据 后面可以跟where()查询条件

    find(主键)->字段属性  以对象属性的方式来进行查询指定数据的指定字段的值

    //查询操作
    public function select()
    {
        //查询全部数据
        $res = GoodsModel::all();
        //查询构造器
        $res = GoodsModel::where('id','>',20)->get();    //id>20
        $res = GoodsModel::where('id','>',20)->first();    //id>20的第一个
        //指定某个字段的值 以对象属性方式访问
        $res = GoodsModel::find(22)->name;    //id为22的name的值
        //后面跟着条件查询
        $res = GoodsModel::all()->where('id','>',23);
        return view('home.goods.index')->with('pro',$res);
//        dump($res);
    }

15.png

---------------------------------------------------------------------------------

三.新增操作 

    * 基于创建模板对象属性 使用save()保存

    * 构造器方法insert(['字段'=>'值','字段'=>'值','字段'=>'值'])

public function insert()
{
    //基于对象属性 使用save()   触发修改器
    $goods = new GoodsModel();
    $goods->desc = '魅族魅族魅族魅族';
    $goods->price = 2000;
    $goods->name = '魅族X8';
    $goods->save();

    //构造器方法  不触发修改器
    GoodsModel::insert([
        'name'=>'小米8',
        'price'=>'2333',
        'desc'=>'小米小米小米小米小米'
    ]);
    dump('新增成功');
}

17.png

四.更新操作

    * 基于查找find()使用save()来更新操作  查询到数据再更新

    * update(['字段'=>'值','字段'=>'值','字段'=>'值']) 查询构造器方法 不触发修改器

public function update(Request $request)
{
    //基于查找find()使用save()来更新操作
    $id = $request->route('id');
    $res = GoodsModel::find($id);
    $res->name = '蓝莓';
    $res->desc = '蓝莓蓝莓蓝莓蓝莓蓝莓';
    $res->save();    //执行更新
    
    //查询构造器方法  不触发修改器
    $res = GoodsModel::where('id',$id)->update([
        'name'=>'蓝莓',
        'price'=>8888
    ]);

    dump('更新成功');
}

18.png

-----------------------------------------------------------------------------

五.删除操作

    * destroy(主键) 模型操作删除

    * where()->delete() 查询构造器删除

    //删除操作
    public function delete(Request $request)
    {
        //destroy(主键)
        $id = $request->route('id');
//        GoodsModel::destroy($id);

        //查询构造器
        GoodsModel::where('id',$id)->delete();
        dump('删除成功');
    }




Correcting teacher:韦小宝Correction time:2019-01-23 15:05:55
Teacher's summary:不错不错 写的很完整 基本上PHP中的框架都是大同小异 多玩玩几个模板基本上看看手册就清楚怎么使用了

Release Notes

Popular Entries