美文网首页laravel核心LaravelLaravel开发实践
laravel初体验(数据库操作篇)

laravel初体验(数据库操作篇)

作者: 蚯小麦 | 来源:发表于2018-07-25 15:39 被阅读21次

    总结今天整理的知识点~

    数据库操作

    查询 DB::select('select * from student');
    添加 DB::insert("insert into student(name,age) values (?,?)", ['小王',18]);
    修改 DB::update("update student set age = ? where name = ?",[20,'小王']);
    删除 DB::delete('delete from student where id > ?',[1001]);

    查询构造器

    插入 DB::table('student')->insert( ['name'=>'小李','age'=>18] );
    获取插入id DB::table('student')->insertGetId(['name'=>'小刘','age'=>33] );
    更新 DB::table('student') ->where('id',1003) ->update(['age'=>44]);
    自增 DB::table('student')->increment('age');
    自减 DB::table('student')->decrement('age');
    删除 DB::table('student')->where('id',1003)->delete();
    获取表中数据 DB::table('student')->get();
    结果集中的第一条数据 DB::table('student')->first();
    单条件查询 DB::table('student')->where('id','=',1005)->get();
    多条件查询 DB::table('student')->whereRaw('id >= ? and name = ?',[1005,'小王'])->get();
    指定字段的集合 DB::table('student')->pluck('name');
    指定下标和字段的集合 DB::table('student')->lists('name','id');
    获取指定字段的集合 DB::table('student')->select('name','id')->get();
    每次查询多少条

    DB::table('student')->chunk(2,function ($student) {
               var_dump($student);
            });
    
    聚合函数

    count() ----- max() ----- avg() ----sum()

    ORM查询(1:all().2:find().3findOrFail())
    • 首先创建Model (Student)
    <?php
    namespace App;
    use Illuminate\Database\Eloquent\Model;
    class Student extends Model {
    //    指定表名
        protected $table = "student";
    //    指定id
        protected $primaryKey = 'id';
    //   自动维护时间戳
        protected $timestamps = true;
    //  允许批量赋值的字段
        protected $fillable = ['name','age'];
    //  指定不允许批量赋值的字段
        protected $guarded = [];
    //返回时间戳格式
        protected function getDateFormat() {
            return time();
        }
    //对时间戳不处理
        protected function asDateTime($value)  {
            return $value;
        }
    }
    
    • 在控制中引用
      查询全部 $students = Student::all();
      根据主键条件查询 $student = Student::find(1001);
      根据主键查询,查询不到,排除异常 Student::findOrFail(1000);
    ORM新增

    *对象新增

            $student = new Student();
            $student->name = '小狗王';
            $student->age = 48;
            $student->sex = 51;
            $bool = $student->save();
    //
    
    • create 新增
    $student = Student::create(
              ['name'=>'小李子','age'=>88]
            ); 
    

    *firstOrCreate(以属性查询,未查询到就新增)

    $student = Student::firstOrCreate(
                ['name'=>'大李子']
            );
    

    *firstOrNew(以属性查找,未查询到不更新到数据库,需要手动save插入)

    $student = Student::firstOrNew(
              ['name'=>'小李子','age'=>88]
            ); 
    $bool = $student->save();
    
    ORM修改数据
    $student = Student::find(1012);
                $student->name = '小秃子';
                $student->save();
    
    ORM删除数据
    //通过模型删除
    $student = Student::find(1012);
    $student->delete();
    //通过主键删除
    Student::destroy(1012);
    //删除指定条件
    Student::where('id','>',1009)->delete();
    
    打工是不可能的.gif

    相关文章

      网友评论

        本文标题:laravel初体验(数据库操作篇)

        本文链接:https://www.haomeiwen.com/subject/klcpmftx.html