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 相关文章推荐
一个用于网络的工具函数库
Oct 09 PHP
使用adodb lite解决问题
Dec 31 PHP
php 前一天或后一天的日期
Jun 28 PHP
PHP执行批量mysql语句的解决方法
May 02 PHP
ThinkPHP CURD方法之page方法详解
Jun 18 PHP
php实现用于删除整个目录的递归函数
Mar 16 PHP
ThinkPHP框架里隐藏index.php
Apr 12 PHP
php的4种常用运行方式详解
Dec 22 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
Feb 28 PHP
php插入mysql数据返回id的方法
May 31 PHP
PHP7内核之Reference详解
Mar 14 PHP
PHP保留两位小数的几种方法
Jul 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
php2html php生成静态页函数
2008/12/08 PHP
php实现简单洗牌算法
2013/06/18 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
js 获取(接收)地址栏参数值的方法
2013/04/01 Javascript
公共js在页面底部加载的注意事项介绍
2013/07/18 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
jQuery基于正则表达式的表单验证功能示例
2017/01/21 Javascript
微信小程序上传图片到服务器实例代码
2017/11/07 Javascript
javascript按顺序加载运行js方法
2017/12/01 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
[45:40]Ti4 冒泡赛第二天NEWBEE vs NaVi 1
2014/07/15 DOTA
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
Python logging模块学习笔记
2014/05/24 Python
python+opencv实现摄像头调用的方法
2019/06/22 Python
Python解析json代码实例解析
2019/11/25 Python
什么是python的必选参数
2020/06/21 Python
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
Ejb技术面试题
2015/04/29 面试题
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
学前教育教师求职自荐信
2013/09/22 职场文书
精彩的英文自荐信
2014/01/30 职场文书
主题实践活动总结
2014/05/08 职场文书
大学自主招生推荐信
2014/05/10 职场文书
大学国际贸易专业自荐信
2014/06/05 职场文书
学校节能宣传周活动总结
2014/07/09 职场文书
六年级小学生评语
2014/12/26 职场文书
五四青年节活动总结
2015/02/10 职场文书
大学生活委员竞选稿
2015/11/21 职场文书
Python如何让字典保持有序排列
2022/04/29 Python
python高温预警数据获取实例
2022/07/23 Python