laravel5.5种的Eloquent ORM的使用:
控制器方法:
//Eloquent ORM的使用: public function orm1() { //all() /*$students=Student::all(); dd($students); */ //find(); /*$student=Student::find(1001); dd($student);*/ //findOrFail() /*$student=Student::findOrFail(1008); dd($student);*/ //查询构造器在ORM中的使用: /*$students=Student::get(); dd($students);*/ //first() /*$students=Student::where('id','>','1001') ->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','>',1001)->max('age'); var_dump($max);*/ } //ORM中的新增、自定义时间戳及批量赋值: public function orm2() { //使用模型新增数据: /*$student = new Student(); $student->name = "笑笑"; $student->age = 22; $bool =$student->save(); dd($student);*/ /*$student = Student::find(1007); echo $student->created_at;*/ /*$student = Student::find(1007); //自己格式化时间戳 echo date('Y-m-d H:i:s', $student->created_at);*/ //使用模型的Create方法新增数据: /*$student=Student::create( ['name'=>'imooc','age'=>18] ); var_dump($student);*/ //firstOrCreate() 以属性查找用户,若没有则新增,并取得新的实例: /*$student= Student::firstOrCreate( ['name'=>'imoocs'] ); dd($student);*/ //firstOrNew()以属性查找用户,若没有则建立新的实例。需要保存的,自己调用save $student = Student::firstOrNew( ['name' => 'imoocs789'] ); $bool = $student->save(); dd($bool); } //ORM更新数据: public function orm3() { //通过模型更新数据:( save保存方法不可行) /*$student = Student::find(1001); $student->name = 'kitty'; $bool=$student->save(); dd($bool);*/ //结合查询语句,批量更新: /*$num=Student::where('id','>',1005)->update( ['age'=>41] ); var_dump($num);*/ } //使用Eloquent ORM删除数据: public function orm4(){ //通过模型删除数据: /*$student=Student::find(1008); $bool=$student->delete(); var_dump($bool);*/ //通过主键删除: // /*$num=Student::destroy(1010);*/ //删除两条数据: /*$num=Student::destroy(1007,1009);*/ /*$num=Student::destroy([1007,1009]); var_dump($num);*/ //通过条件删除: /* $num=Student::where('id','>',1004)->delete(); var_dump($num);*/ }
模型的设置:
<?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=[]; //自动维护时间戳: public $timestamps=true; //返回当前时间的时间戳,进入数据库,输出时,可以输出格式化好的时间。 protected function getDateFormat() { return time(); } //设置他之后,返回的就是数据表中的时间戳了。 protected function asDateTime($value) { return $value; } }