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 相关文章推荐
模板引擎Smarty深入浅出介绍
Dec 06 PHP
PHP数字格式化
Dec 06 PHP
延长phpmyadmin登录时间的方法
Feb 06 PHP
PHP下判断网址是否有效的代码
Oct 08 PHP
那些年一起学习的PHP(一)
Mar 21 PHP
分享一个php 的异常处理程序
Jun 22 PHP
PHP传参之传值与传址的区别
Apr 24 PHP
PHP实现多文件上传的方法
Jul 08 PHP
PHP实现生成唯一会员卡号
Aug 24 PHP
php 二维数组时间排序实现代码
Nov 19 PHP
PHP+jQuery实现即点即改功能示例
Feb 21 PHP
php7性能提升的原因详解
Oct 13 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中curl、fsockopen的应用
2016/12/10 PHP
php面向对象基础详解【星际争霸游戏案例】
2020/01/23 PHP
JavaScript 作用域链解析
2014/11/13 Javascript
JavaScript function函数种类详解
2016/02/22 Javascript
同步异步动态引入js文件的几种方法总结
2016/09/23 Javascript
浅谈js原生拖放
2016/11/21 Javascript
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
Angular4开发解决跨域问题详解
2017/08/28 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
Vue Promise的axios请求封装详解
2018/08/13 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
pyv8学习python和javascript变量进行交互
2013/12/04 Python
Python 对象中的数据类型
2017/05/13 Python
Python建立Map写Excel表实例解析
2018/01/17 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
2019/06/24 Python
Python datetime包函数简单介绍
2019/08/28 Python
如何获取Python简单for循环索引
2019/11/21 Python
python关于调用函数外的变量实例
2019/12/26 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
南京软件公司的.net程序员笔试题
2014/08/31 面试题
函授自我鉴定范文
2014/02/06 职场文书
团日活动总结书格式
2014/05/08 职场文书
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript