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语法(4)
Oct 09 PHP
PHP静态新闻列表自动生成代码
Jun 14 PHP
PHP 变量的定义方法
Jan 26 PHP
PHP clearstatcache()函数详解
Mar 02 PHP
php站内搜索并高亮显示关键字的实现代码
Dec 29 PHP
PHP 设计模式之观察者模式介绍
Feb 22 PHP
php中二维数组排序问题方法详解
Aug 28 PHP
php文档工具PHP Documentor安装与使用方法
Jan 25 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
May 11 PHP
PHP笛卡尔积实现算法示例
Jul 30 PHP
php + WebUploader实现图片批量上传功能
May 06 PHP
php中的依赖注入实例详解
Aug 14 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搜索文件程序分享
2015/10/30 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
2017/03/12 PHP
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
2011/11/30 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
Javascript添加监听与删除监听用法详解
2014/12/19 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
全国省市二级联动下拉菜单 js版
2016/05/10 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
2016/06/07 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
vue路由拦截及页面跳转的设置方法
2018/05/24 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
[51:22]Fnatic vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python Deque 模块使用详解
2014/07/04 Python
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
Python实现身份证号码解析
2015/09/01 Python
深入学习python的yield和generator
2016/03/10 Python
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
Python读取MRI并显示为灰度图像实例代码
2018/01/03 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
中国电子产品外贸网站:MiniIntheBox
2017/02/06 全球购物
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
澳洲Chemist Direct药房中文网:澳洲大型线上直邮药房
2019/11/04 全球购物
linux面试题参考答案(11)
2012/05/01 面试题
前台接待的工作职责
2013/11/21 职场文书
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
财务总经理岗位职责
2014/02/16 职场文书
《风筝》教学反思
2014/04/10 职场文书
物业管理工作方案
2014/05/10 职场文书
数学教师求职信范文
2015/03/20 职场文书
Golang并发工具Singleflight
2022/05/06 Golang