Laravel中10个有用的用法小结


Posted in PHP onMay 06, 2019

前言

本文给大家介绍了Laravel 中一些常用的用法,额,说不定你就用上了。。。

1. 在 find 方法中指定属性

User::find(1, ['name', 'email']);
User::findOrFail(1, ['name', 'email']);

2. Clone 一个 Model

用 replicate 方法可以克隆一个 Model

$user = User::find(1);
$newUser = $user->replicate();
$newUser->save();

3. 判断两个 Model 是否相同

检查两个 Model 的ID是否相同用 is 方法

$user = User::find(1);
$sameUser = User::find(1);
$diffUser = User::find(2);
$user->is($sameUser); // true
$user->is($diffUser); // false;

4. 重新加载一个 Model

$user = User::find(1);
$user->name; // 'Peter'
// 如果 name 更新过,比如由 peter 更新为 John
$user->refresh();
$user->name; // John

5. 加载新的 Model

$user = App\User::first();
$user->name;    // John
//
$updatedUser = $user->fresh(); 
$updatedUser->name;  // Peter
$user->name;    // John

6. 更新带关联的 Model

在更新关联的时候,使用 push 方法可以更新所有 Model

class User extends Model
{
 public function phone()
 {
  return $this->hasOne('App\Phone');
 }
}
$user = User::first();
$user->name = "Peter";
$user->phone->number = '1234567890';
$user->save(); // 只更新 User Model
$user->push(); // 更新 User 和 Phone Model

7. 自定义软删除字段

Laravel 默认使用 deleted_at 作为软删除字段,我们通过以下方式将 deleted_at 改成 is_deleted

class User extends Model
{
 use SoftDeletes;
  * deleted_at 字段.
  *
  * @var string
  */
 const DELETED_AT = 'is_deleted';
}

或者使用访问器

class User extends Model
{
 use SoftDeletes;
 
 public function getDeletedAtColumn(){
  return 'is_deleted';
 }
}

8. 查询 Model 更改的属性

$user = User::first();
$user->name; // John
$user->name = 'Peter';
$user->save();

dd($user->getChanges());
// 输出:
[
 'name' => 'John',
 'updated_at' => '...'
]

9. 查询 Model 是否已更改

$user = User::first();
$user->name;    // John
$user->isDirty();  // false 
$user->name = 'Peter'; 
$user->isDirty();  // true
$user->getDirty();  // ['name' => 'Peter']
$user->save();   
$user->isDirty();  // false

getChanges() 与 getDirty() 的区别

getChanges() 方法用在 save() 方法之后输出结果集

getDirty() 方法用在 save() 方法之前输出结果集

10. 查询修改前的 Model 信息

$user = App\User::first();
$user->name;     //John
$user->name = "Peter";   //Peter
$user->getOriginal('name'); //John
$user->getOriginal();   //Original $user record

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
PHP 文件缓存的性能测试
Apr 25 PHP
用PHP将网址字符串转换成超链接(网址或email)
May 25 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
Jan 06 PHP
gd库图片下载类实现下载网页所有图片的php代码
Aug 20 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
Feb 14 PHP
php 批量替换程序的具体实现代码
Oct 04 PHP
php调用nginx的mod_zip模块打包ZIP文件
Jun 11 PHP
页面利用渐进式JPEG来提升用户体验度
Dec 01 PHP
PHP自毁程序(慎用)
Jul 09 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
Sep 11 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
Apr 18 PHP
PHP中16个高危函数整理
Sep 19 PHP
Mac下快速搭建PHP开发环境步骤详解
May 05 #PHP
ThinkPHP3.2框架操作Redis的方法分析
May 05 #PHP
tp5框架内使用tp3.2分页的方法分析
May 05 #PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 #PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
May 05 #PHP
php实现的顺序线性表示例
May 04 #PHP
TP5.0框架实现无限极回复功能的方法分析
May 04 #PHP
You might like
php桌面中心(二) 数据库写入
2007/03/11 PHP
php之对抗Web扫描器的脚本技巧
2008/10/01 PHP
PHP 巧用数组降低程序的时间复杂度
2010/01/01 PHP
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
AJAX的使用方法详解
2017/04/29 PHP
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
javascript移出节点removeChild()使用介绍
2014/04/03 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
Bootstrap每天必学之媒体对象
2015/11/30 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
老生常谈jacascript DOM节点获取
2017/04/17 Javascript
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
[37:50]VP vs TNC Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
Python实现的一个简单LRU cache
2014/09/26 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
python通用读取vcf文件的类(复制粘贴即可用)
2020/02/29 Python
django配置app中的静态文件步骤
2020/03/27 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
Visual-Click葡萄牙:欧洲领先的在线眼镜商
2020/02/17 全球购物
应届生保险求职信
2013/11/11 职场文书
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
大一期末自我鉴定
2013/12/13 职场文书
护理毕业生自荐信范文
2013/12/22 职场文书
银行办理业务介绍信
2014/01/18 职场文书
大型晚会策划方案
2014/02/06 职场文书
写求职信有什么意义
2014/02/17 职场文书
python 利用PyAutoGUI快速构建自动化操作脚本
2021/05/31 Python