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
php 动态添加记录
Mar 10 PHP
php的dl函数用法实例
Nov 06 PHP
php+mysqli实现批量替换数据库表前缀的方法
Dec 29 PHP
PHP删除指定目录中的所有目录及文件的方法
Feb 26 PHP
php中define用法实例
Jul 30 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
Dec 25 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
Apr 15 PHP
PHP校验15位和18位身份证号的类封装
Nov 07 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 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调用三种数据库的方法(3)
2006/10/09 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
php查询操作实现投票功能
2016/05/09 PHP
js调用AJAX时Get和post的乱码解决方法
2013/06/04 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
2014/03/05 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
layui表格checkbox选择全选样式及功能的实例
2018/03/07 Javascript
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
Python中字符串对齐方法介绍
2015/05/21 Python
详解使用python crontab设置linux定时任务
2016/12/08 Python
python3获取当前文件的上一级目录实例
2018/04/26 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
python 含子图的gif生成时内存溢出的方法
2019/07/07 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
Python子进程subpocess原理及用法解析
2020/07/16 Python
深入了解Python 变量作用域
2020/07/24 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
Smashbox英国官网:美国知名彩妆品牌
2017/11/13 全球购物
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
Mansur Gavriel官网:纽约市的一个设计品牌
2019/05/02 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
行政文秘岗位职责范本
2014/02/10 职场文书
优秀学生获奖感言
2014/02/15 职场文书
升旗仪式主持词
2014/03/19 职场文书
委托书样本
2014/04/02 职场文书
电工技术比武方案
2014/05/11 职场文书
班训口号大全
2014/06/18 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
SpringBoot接入钉钉自定义机器人预警通知
2022/07/15 Java/Android