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数字格式化
Dec 06 PHP
php5 mysql分页实例代码
Apr 10 PHP
深入探讨PHP中的内存管理问题
Aug 31 PHP
php 网上商城促销设计实例代码
Feb 17 PHP
php cli模式学习(PHP命令行模式)
Jun 03 PHP
支持中文、字母、数字的PHP验证码
May 04 PHP
教你php如何实现验证码
Jan 20 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 PHP
PHP处理二进制数据的实现方法
Jun 13 PHP
PHP实现动态添加XML中数据的方法
Mar 30 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
laravel 5.5 关闭token的3种实现方式
Oct 24 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缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
php获取图片信息的方法详解
2015/12/10 PHP
微信支付扫码支付php版
2016/07/22 PHP
用js实现的模拟jquery的animate自定义动画(2.5K)
2010/07/20 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
Javascript拓展String方法小结
2013/07/08 Javascript
Javascript浅谈之this
2013/12/17 Javascript
Node.js文件操作详解
2014/08/16 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
2015/11/29 Javascript
js简单实现图片延迟加载的方法
2016/07/19 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/15 Javascript
JS图片预加载插件详解
2017/06/21 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
基于JS判断对象是否是数组
2020/01/10 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
python使用marshal模块序列化实例
2014/09/25 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
2019/03/13 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
Django使用Celery加redis执行异步任务的实例内容
2020/02/20 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
2020/11/10 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
Pam & Gela官网:美国性感前卫女装品牌
2018/07/19 全球购物
俄罗斯三星品牌商店:Samsungstore
2020/04/05 全球购物
软件测试题目
2013/02/27 面试题
家长学校工作方案
2014/05/07 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
详解Vue的sync修饰符
2021/05/15 Vue.js
Python图片处理之图片裁剪教程
2021/05/27 Python
windows系统搭建WEB服务器详细教程
2022/08/05 Servers