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
- laravel学习笔记(4)— 数据库操作之
- laravel学习笔记(3)— 数据库操作之
- Laravel基础篇学习笔记(二):数据库操作
- Laravel学习笔记(四)---操作数据库--原生SQL语句
- laravel框架学习之数据库相关操作(三)
- Laravel入门教程(四)- 数据库操作之
- laravel--4 数据库操作
- Laravel学习笔记(五)---操作数据库--查询构建器(Query Builder)
- Laravel学习笔记(六)---操作数据库--Eloquent ORM(对象关系映射)
- Laravel学习笔记(七)---操作数据库--Eloquent ORM--关联关系及其在模型中的定义
- Laravel学习笔记(三)数据库 数据库迁移
- Laravel学习笔记(四)数据库 数据库迁移案例
- Laravel学习笔记(六)数据库 数据库填充
- Laravel之Migrations学习笔记
- laravel学习笔记之路由
- laravel学习笔记(2)— Laravel中的MVC
- Laravel框架学习(查询构建器操作数据库)
- Laravel数据库操作之-DB facade
- JAVA之键盘,鼠标监听事件
- java中讲讲InputStreamReader的用法,举例?
- 程序员创业的情怀和梦想
- 树的子结构
- 做游戏,学编程(C语言) 5 数组之生命游戏
- laravel学习笔记(4)— 数据库操作之
- 面对压力,逃避还是面对?
- Hibernate 注解使用总结
- 做游戏,学编程(C语言) 6 数组之空战游戏
- 全排列的递归解法
- [js笔记] click事件之动态浮动便签
- python 如何将字典dict、列表list中的中文正常显示
- 做游戏,学编程(C语言) 7 学习EasyX图形交互功能----flappy bird源代码
- hdu3473 中位数性质? (划分树)