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 09 PHP
生成php程序的php代码
Apr 07 PHP
PHP学习笔记 (1) 环境配置与代码调试
Jun 19 PHP
处理单名多值表单的详解
Jun 08 PHP
怎么在Windows系统中搭建php环境
Aug 31 PHP
使用配置类定义Codeigniter全局变量
Jun 12 PHP
使用PHP生成PDF方法详解
Jan 23 PHP
Win7下手动安装apache2.2、php5.4笔记
Apr 03 PHP
PHP获取二维数组中某一列的值集合
Dec 25 PHP
PHP读取文件内容的五种方式
Dec 28 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
Jan 07 PHP
php+ajax 文件上传代码实例
Mar 18 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时间戳使用实例代码
2008/06/07 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
解析PHP中$_FILES的使用以及注意事项
2013/07/05 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
Javascript 获取字符串字节数的多种方法
2009/06/02 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
基于VUE移动音乐WEBAPP跨域请求失败的解决方法
2018/01/16 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
微信小程序实现获取用户信息并存入数据库操作示例
2019/05/07 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
Python命令行解析模块详解
2018/02/01 Python
python中的turtle库函数简单使用教程
2018/07/23 Python
selenium+python实现1688网站验证码图片的截取功能
2018/08/14 Python
python通过zabbix api获取主机
2018/09/17 Python
python 元组的使用方法
2020/06/09 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
深入分析python 排序
2020/08/24 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
银行青年文明号事迹材料
2014/05/31 职场文书
幼儿园大班区域活动总结
2014/07/09 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
搞笑婚前保证书
2015/02/28 职场文书
2015年医德医风工作总结
2015/04/02 职场文书
党员承诺书格式范文
2015/04/28 职场文书
php TP5框架生成二维码链接
2021/04/01 PHP
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL
基于Python实现西西成语接龙小助手
2022/08/05 Golang