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实时显示输出
Oct 02 PHP
Function eregi is deprecated (解决方法)
Jun 21 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
Jul 18 PHP
php使用百度翻译api示例分享
Jan 31 PHP
全面了解PHP中的全局变量
Jun 17 PHP
laravel中的错误与日志用法详解
Jul 26 PHP
基于 Swoole 的微信扫码登录功能实现代码
Jan 15 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
Apr 08 PHP
laravel实现于语言包的完美切换方法
Sep 29 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
May 02 PHP
PHP数组Key强制类型转换实现原理解析
Sep 01 PHP
PHP7 整型处理机制修改
Mar 09 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
PHP5中虚函数的实现方法分享
2011/04/20 PHP
新手学习PHP的一些基础知识分享
2011/07/27 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
yii2缓存Caching基本用法示例
2016/07/18 PHP
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
2012/01/15 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
js判断文本框剩余可输入字数的方法
2015/02/04 Javascript
javascript拖拽效果延伸学习
2016/04/04 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
javascript动态创建对象的属性详解
2018/11/07 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
vue实现简单加法计算器
2020/10/22 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
python中循环语句while用法实例
2015/05/16 Python
Python实现给文件添加内容及得到文件信息的方法
2015/05/28 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
对Python2与Python3中__bool__方法的差异详解
2018/11/01 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
Python实现微信机器人的方法
2019/09/06 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
基于pytorch中的Sequential用法说明
2020/06/24 Python
深入了解Python enumerate和zip
2020/07/16 Python
Python如何重新加载模块
2020/07/29 Python
Nip + Fab官网:英国美容品牌
2019/08/26 全球购物
人民教师的自我评价分享
2014/02/21 职场文书
2014优秀大学生简历自我评价
2014/09/15 职场文书
人口与计划生育责任书
2015/05/09 职场文书
各国货币符号大全
2022/02/17 杂记
python模拟浏览器 使用selenium进入好友QQ空间并留言
2022/04/12 Python
SpringBoot详解自定义Stater的应用
2022/07/15 Java/Android