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 CURL用法的深入分析
Jun 09 PHP
php加密解密实用类分享
Jan 07 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
Feb 18 PHP
PHP中把stdClass Object转array的几个方法
May 08 PHP
ThinkPHP3.1的Widget新用法
Jun 19 PHP
destoon整合ucenter后注册页面不跳转的解决方法
Jun 21 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
Dec 17 PHP
php中mkdir()函数的权限问题分析
Sep 24 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
Oct 08 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
Apr 10 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
Apr 17 PHP
浅析PHP中json_encode与json_decode的区别
Jul 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
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
php中转义mysql语句的实现代码
2011/06/24 PHP
详解WordPress中添加友情链接的方法
2016/05/21 PHP
php依赖注入知识点详解
2019/09/23 PHP
JS代码优化技巧之通俗版(减少js体积)
2011/12/23 Javascript
JavaScript中的原型继承基础学习教程
2016/05/06 Javascript
利用JS实现数字增长
2016/07/28 Javascript
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
用Node编写RESTful API接口的示例代码
2018/07/04 Javascript
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
对于Python的框架中一些会话程序的管理
2015/04/20 Python
用Python编写web API的教程
2015/04/30 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
Python使用ctypes调用C/C++的方法
2019/01/29 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
pytorch forward两个参数实例
2020/01/17 Python
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
行政部岗位职责范本
2014/03/13 职场文书
应届本科毕业生求职信
2014/07/23 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
婚前保证书范文
2015/02/28 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
甲午风云观后感
2015/06/02 职场文书
地道战观后感2000字
2015/06/04 职场文书
小学生暑假生活总结
2015/07/13 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
秋季运动会加油词
2015/07/18 职场文书
详解JS WebSocket断开原因和心跳机制
2021/05/07 Javascript
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python
Python制作春联的示例代码
2022/01/22 Python