laravel学习笔记(4)— 数据库操作之

来源:互联网 发布:caxa数控车床编程视频 编辑:程序博客网 时间:2024/06/05 05:48

1.Eloquent ORM简介、模型的建立及查询数据

 ●  laravel所自带的Eloquent ORM是一个优美、简洁的ActiveRecord实现,用来实现数据库操作。

 ●  每个数据表都有一个与之相对应的“模型(Model)”用于和数据表交互。

// 数据库操作 - Eloquent ORM 查询数据1.创建Model类型 方法里面声明两个受保护属性:$table(表名)和$primaryKey(主键)<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Student extends Model{protected $table = 'student';protected $primaryKey = 'id';}?>2.Controller里面以 类名::方法 (静态方法)的风格进行操作数据库<?phpnamespace App\Http\Controllers;use Illuminate\Support\Facades\DB;use App\Student;class StudentController extends Controller{public function orm1() {echo '<pre>';// all 通过orm获取所有数据// $result = Student::all();// find 通过主键返回指定的数据// $result = Student::find(1001);// findOrFail 通过主键返回指定的数据 未查找到到则抛出异常// $result = Student::findOrFail(1001);// 获取符合条件的数据// $student = (Student::where('age', '<', 20)->get())['tables'];// 分段式(分页)获取数据递交给闭包函数循环处理// Student::chunk(2, function($student) {// var_dump($student);// });// 查询构造器之聚合函数$result = Student::count();dd($result);}}?>
2.Eloquent ORM中新增数据、自定义时间戳及批量赋值的使用

// 数据库操作 - Eloquent ORM 增加数据1.建立model类 (app\Student.php)[ 类 属性/方法 ]protected $table = 表名;protected $promaryKey = 主键名;public $timestamps = false;  是否开启时间戳自动调节protected function getDateFormat() { return time(); }  使用时间戳存入数据库protected function asDatetime($val) { return $val; }  将数据库里的时间戳取出时不被转换为日期protected $fillable = ['name', 'age']; 允许批量赋值的字段 白名单设置protected $guarded = ['aa', 'bb'];  不允许批量赋值的字段 黑名单设置public function orm2() {// 一、通过模型新增数据(涉及到自定义时间戳)// $student = new Student();// $student -> name = 'stu1';// $student -> age = 20;// $student -> save();// 二、使用模型的create方法新增数据(涉及到批量赋值)// $student = new Student();// $result = $student -> create([// 'name' => 'create',// 'age' => 30// ]);// firstOrCreate 查找数据并返回 如果不存在则插入该条数据并返回// $result = Student::firstOrCreate([// 'name' => 'aj',// 'age' => 32// ]);// firstOrNew 查找数据并返回 如果不存在则返回该类的对象 调用save才得以保存$result = Student::firstOrNew(['name' => 'make']);$result = $result->save();dd($result);}
3.使用Eloquent ORM修改数据

 ●  通过模型更新

 ●  结合查询语句批量更新

// 数据库操作 - Eloquent ORM 修改数据1.建立model类 (app\Student.php)[ 类 属性/方法 ]protected $table = 表名;protected $promaryKey = 主键名;public $timestamps = false;  是否开启时间戳自动调节protected function getDateFormat() { return time(); }  使用时间戳存入数据库protected function asDatetime($val) { return $val; }  将数据库里的时间戳取出时不被转换为日期protected $fillable = ['name', 'age']; 允许批量赋值的字段 白名单设置protected $guarded = ['aa', 'bb'];  不允许批量赋值的字段 黑名单设置StudentController.phppublic function orm3() {// 通过模型更新数据 (最后返回bool类型 单条数据是否修改成功)// $student = Student::find(1051);// $student->name = 'aj2';// $result = $student->save();// 结合查询语句批量更新 (返回int类型 受影响行数)$result = Student::where('id', '>', 1050)->update(['name'=>'adj','age'=>32]);}
4.使用Eloquent ORM删除数据

 ●  通过模型删除

 ●  通过主键值删除

 ●  根据指定条件删除

//删除方法一$student=Student::find(1021);$student->delete()//删除,返回bool方法二Student::destory(1020,1019)//返回值是删除记录条数方法三Student::where('id'>1010)->delete()

 6-5 使ent ORM删除数 6-4 使用Eloquent OM修改数据

0 0
原创粉丝点击