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 相关文章推荐
discuz论坛 用户登录 后台程序代码
Nov 27 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
Aug 05 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
May 04 PHP
PHP实现的博客欢迎提示功能(很特别哦)
Jun 05 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
Oct 01 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
PHP易混淆函数的区别及用法汇总
Nov 22 PHP
WAF的正确bypass
Jan 05 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
Nov 06 PHP
php对微信支付回调处理的方法
Aug 23 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
Oct 14 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
Sep 15 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 CLI实现简单的数据库实时监控调度
2009/07/01 PHP
php文件怎么打开 如何执行php文件
2011/12/21 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
2010/03/02 Javascript
Jquery ajaxsubmit上传图片实现代码
2010/11/04 Javascript
jquery禁用右键单击功能屏蔽F5刷新
2014/03/17 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
JavaScript数组合并的多种方法
2016/05/22 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
原生js实现新闻列表展开/收起全文功能
2017/01/20 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
2018/11/02 Javascript
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
2019/09/01 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
2019/10/16 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
Python 字典dict使用介绍
2014/11/30 Python
Python错误: SyntaxError: Non-ASCII character解决办法
2017/06/08 Python
Python实现简单的语音识别系统
2017/12/13 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
python实现井字棋小游戏
2020/03/04 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
html5中valid、invalid、required的定义
2014/02/21 HTML / CSS
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
Linux不知道文件后缀名怎么判断文件类型
2012/04/26 面试题
村创先争优活动总结
2014/08/28 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
雷锋的观后感
2015/06/10 职场文书
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python