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 smarty模版引擎中的缓存应用
Dec 02 PHP
PHP fopen 读取带中文URL地址的一点见解
Sep 25 PHP
测试php连接mysql是否成功的代码分享
Jan 24 PHP
destoon二次开发模板及调用语法汇总
Jun 21 PHP
php选择排序法实现数组排序实例分析
Feb 16 PHP
教你php如何实现验证码
Jan 20 PHP
PHP针对多用户实现更换头像功能
Sep 04 PHP
PHP用continue跳过本次循环中剩余代码的注意点
Jun 27 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
php ajax数据传输和响应方法
Aug 21 PHP
phpQuery采集网页实现代码实例
Apr 02 PHP
php实现记事本案例
Oct 20 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 cookie 登录验证示例代码
2009/03/16 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
windows下zendframework项目环境搭建(通过命令行配置)
2012/12/06 PHP
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
php自动识别文件编码并转换为UTF-8的方法
2014/06/12 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
2020/03/30 Javascript
10个JavaScript中易犯小错误
2016/02/14 Javascript
js和C# 时间日期格式转换的简单实例
2016/05/28 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
Javascript实现html转pdf高清版(提高分辨率)
2020/02/19 Javascript
Python通过解析网页实现看报程序的方法
2014/08/04 Python
Python中用Descriptor实现类级属性(Property)详解
2014/09/18 Python
使用Python脚本在Linux下实现部分Bash Shell的教程
2015/04/17 Python
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
Python自动生产表情包
2017/03/17 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
2021/01/26 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
在职人员函授期间自我评价分享
2013/11/08 职场文书
大学生军训感想
2014/02/16 职场文书
社区灵活就业证明
2014/11/03 职场文书
MySQL 全文检索的使用示例
2021/06/07 MySQL
MySQL学习必备条件查询数据
2022/03/25 MySQL