Laravel 数据库操作之Eloquent ORM模型
//模型中的相关代码
namespace App; use Illuminate\Database\Eloquent\Model; class Student extends Model{
//默认对应的是模型复数,即students,如果不是,需要自己指定表名
protected $table = 'student';//指定表名 //默认主键是id,如果不是,需要指定
protected $primaryKey = 'id'; //自动维护时间戳
public $timestamps = true; protected function getDateFormat()
{
return time();
} //不格式化时间戳
protected function asDateTime($val)
{
return $val;
} //指定允许批量赋值的字段
protected $fillable = ['name','age']; //指定不允许批量赋值的字段
protected $guarded = ['name','age']; }
//控制器的相关代码
//orm 使用模型查询
public function orm1(){ //all().返回模型的对象
$student = Student::all(); //find()
$student = Student::find(100); //findOrFail(),查找不到就报错
$student = Student::findOrFail(100); //get()
$student = Student::get(); //first()
$student = Student::where('id','>',10)
->orderBy('age','desc')
->first();
}
//orm 使用模型查询
public function orm2(){
//使用模型新增数据
$student = new Student();
$student->name = 'hello';
$student->age = 'hello';
$bool = $student->save();
var_dump($bool); //格式化日期
$student = Student::find(1);
echo date('Y-m-d H:i:s',$student->addtime); //使用模型的create方法新增数据,
$student = Student::create(['name'=>'haha','age'=>10]); //firstOrCreate,先查找,若没有则新增
$student = Student::firstOrCreate(['name'=>'haha']); //firstOrNew,先查找,若没有则返回实例,需要自行调用save新增
$student = Student::firstOrNew(['name'=>'haha']);
$bool = $student->save(); //通过模型更新数据
$student = Student::find(10);
$student->name = 'happy';
$bool = $student->save();
var_dump($bool); //批量更新,返回行数
$num = Student::where('id','>',10)->update(
['age'=>20]
);
var_dump($num); //通过模型删除,不存在会报错
$student = Student::find(10);
$bool = $student->delete();
var_dump($bool); //通过主键删除
$num=Student::destroy(10);
var_dump($num);
$num=Student::destroy([10,11,20]);
var_dump($num); $num=Student::where('id','>',20)->delete();
var_dump($num); }
Laravel 数据库操作之Eloquent ORM模型的更多相关文章
- Laravel—数据库操作与Eloquent模型使用总结
数据库操作 执行原生SQL //查询 $emp = DB::select('select * from employees where emp_no = 1'); $emp = DB::select( ...
- Eloquent ORM模型中添加自定义值
我们都知道通过Laravel中数据库查询出来的模型对象都是基于数据库字段,今天给大家展示一个 Laravel Eloquent ORM 模型特性-附加值不存在于数据表中. 举个简单的栗子,一篇文章(p ...
- Laravel 数据库操作 Eloquent ORM
laravel 操作数据库一般都使用它的Eloquent ORM才操作 建立模型 <?php namespace App; use Illuminate\Database\Eloquent\Mo ...
- laravel 5.1 使用Eloquent ORM 操作实例
Laravel 的 Eloquent ORM 提供了更优雅的ActiveRecord 实现来和数据库的互动. 每个数据库表对应一个模型文件. 数据库配置 .env文件(也可以直接修改config/da ...
- PHP数据库操作:使用ORM
之前我发了一篇博文PHP数据库操作:从MySQL原生API到PDO,向大家展示PHP是如何使用MySQL原生API.MySQLi面向过程.MySQLi面向对象.PDO操作MySQL数据库的.本文介绍如 ...
- [ Laravel 5.6 文档 ]laravel数据库操作分页(自定义分页实现和自定义分页样式)
简介 在其他框架中,分页可能是件非常痛苦的事,Laravel 让这件事变得简单.易于上手.Laravel 的分页器与查询构建器和 Eloquent ORM 集成在一起,并开箱提供方便的.易于使用的.基 ...
- ThinkPHP 学习笔记 ( 三 ) 数据库操作之数据表模型和基础模型 ( Model )
//TP 恶补ing... 一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: publ ...
- ThinkPHP 数据库操作之数据表模型和基础模型 ( Model )
一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: public function te ...
- laravel 数据库操作
1 配置信息 1.1配置目录: config/database.php 1.2配置多个数据库 //默认的数据库 'mysql' => [ 'driver' => 'mysql', 'hos ...
随机推荐
- C语言格式化说明符
1.1.1 格式化输入输出函数一.printf()函数printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息.在编写程序时经常会用到此函数.printf()函数的调用格式为: ...
- C++_STL基础案例
C++ C++三种容器:list.vector和deque的区别:https://blog.csdn.net/gogokongyin/article/details/51178378 一.容器 小常识 ...
- Bzoj 1055: [HAOI2008]玩具取名 (区间DP)
Bzoj 1055: [HAOI2008]玩具取名 (区间DP) 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1055 区间动态规划和可 ...
- mycat中间件安装与使用
前提: 安装JDK版本在7.0及其以上 1.下载: 下载地址在:http://dl.mycat.io/ 选择1.6-release版本下载 2.安装: 直接解压即可: tar -zxf Mycat-s ...
- Git学习——提交BUG
git stash 可以把当前工作区的修改存储起来,此时可以查看工作区是干净的.这时可以切换到别的分支去处理BUG.等BUG处理好之后,回到该分支,恢复工作区.通过: git stash list 查 ...
- gpio/外设/控制器
1.项目中所有的外设pad都是通过GPIO与控制器相连的.比如FSHC<=>gpio<=>flash 2.gpio类似多个 mux 集合. 3.对于与gpio相连的pad具体结 ...
- python 中变量和对象
1. 在 python 中,类型属于对象,变量是没有类型的:a=[1,2,3] a="Runoob"以上代码中,[1,2,3] 是 List 类型,"Runoob&quo ...
- python--管道, 事件, 信号量, 进程池
一 . 管道 (了解) from multiprocessing import Process, Pipe def f1(conn): # 管道的recv 里面不用写数字 from_main_proc ...
- 快照、克隆,xshell优化,Linux历史
目录 一.虚拟拍照功能 二.虚拟机克隆功能 三.Xshell的优化 四.介绍Linux历史 一.虚拟拍照功能 1.拍摄快照 关机状态拍照 关机命令:shutdown -h now 或者 init 0 ...
- 我的Python分析成长之路11
数据预处理 如何对数据进行预处理,提高数据质量,是数据分析中重要的问题. 1.数据合并 堆叠合并数据,堆叠就是简单地把两个表拼在一起,也被称为轴向链接,绑定或连接.依照轴的方向,数据堆叠可分为横向堆叠 ...