laravel 操作数据库一般都使用它的Eloquent ORM才操作
建立模型
<?php namespace App; use IlluminateDatabaseEloquentModel; 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);