欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Laravel 数据库操作 Eloquent ORM

程序员文章站 2022-07-02 16:56:39
laravel 操作数据库一般都使用它的Eloquent ORM才操作建立模型 ','1')->orderBy('age','desc')->first(); dd($students); //chunk() 每次查询一定条数 Student::chunk(2,function($students)... ......
laravel 操作数据库一般都使用它的eloquent orm才操作


建立模型
<?php
namespace app;

use illuminate\database\eloquent\model;

class student extends model
{
    //指定表名 默认 模型名的复数
    protected $table='student';

    //指定主键 默认主键 为id
    protected  $primarykey='id';

    //指定允许批量赋值的字段
    protected $fillable=['name','age'];
    //指定不允许批量赋值的字段
    protected $guarded=[];

    //是否维护时间戳  默认维护
    //$timestamps=falst 不维护
    public $timestamps=true;

    //维护时间的时候保存时间戳
    protected function getdateformat()
    {
        return time(); // todo: change the autogenerated stub
    }

    //查询的时候返回时间戳
    protected function asdatetime($value)
    {
//        return parent::asdatetime($value); // todo: change the autogenerated stub
        return $value;
    }
}

  

orm 查询
//all() 查询所有数据  查询数据为集合
        $students=student::all();
        dd($students);

        //根据主键查询 查询一条数据
        $student=student::find(2);
        dd($student);

        //findorfail() 根据主键查询 如果没有查到 报错
        $student=student::findorfail(2);
        dd($student);

        //get() 查询所有数据
        $students=student::get();
        dd($students);

        //first() 查询第一条
        $students=student::where('id','>','1')->orderby('age','desc')->first();
        dd($students);

        //chunk() 每次查询一定条数 
        student::chunk(2,function($students){
            var_dump($students);
        });

        //聚合函数
        //count() 条数
        $num = student::count();
        var_dump($num);

        //max() 查询最大值
        $max=student::where('id','>',1)->max('age');
        var_dump($max);
添加
//新增
        //save()
        $student=new student();
        $student->name='vbb';
        $student->age=34;
        $rs=$student->save();
        dd($rs);

        //create()
        $rs=student::create([
            'name'=>'momo',
            'age'=>23
        ]);
        dd($rs);

        //firstorcreate()以属性查询数据 如果没有 新建数据
        $rs=student::firstorcreate(
            ['name'=>'vbb4']
        );

        //firstornew() 以属性查询数据 如果没有 新建实例 如果想保存调用save()
        $rs=student::firstornew(
            ['name'=>'vbb4']
        );
        $bool=$rs->save();

        dd($rs);
更新
//更新
        //通过模型更新数据
        $student=student::find(2);
        $student->age=2;
        $bool=$student->save();
        var_dump($bool);

        //批量更新
        $num=student::where('id','>',5)->update(
            ['age'=>41]
        );
        var_dump($num);
删除
//删除
        //通过模型删除
        $student=student::find(2);
        $bool=$student->delete();
        var_dump($bool);

        //通过主键删除
        $num=student::destroy(3,4,5);
        $num=student::destroy([3,4,5]);
        var_dump($num);

        //删除指定条件
        $num=student::where('id','>',7)->delete();
        var_dump($num);