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 相关文章推荐
怎么样可以把 phpinfo()屏蔽掉?
Nov 24 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
Apr 24 PHP
php生成扇形比例图实例
Nov 06 PHP
php实现的ping端口函数实例
Nov 12 PHP
PHP使用数组依次替换字符串中匹配项
Jan 08 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
Apr 26 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
Jul 07 PHP
php解决和避免form表单重复提交的几种方法
Aug 31 PHP
PHP/HTML混写的四种方式总结
Feb 27 PHP
php base64 编码与解码实例代码
Mar 21 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
Aug 21 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
May 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框架Phpbean说明
2008/01/10 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
2015/04/20 PHP
php微信开发之带参数二维码的使用
2016/08/03 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
Nginx实现反向代理
2017/09/20 Servers
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
js 深拷贝函数
2008/12/04 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
js分页工具实例
2015/01/28 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
2016/07/12 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
Vue实现点击当前行变色
2020/12/14 Vue.js
Python 基于Twisted框架的文件夹网络传输源码
2016/08/28 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
基于python中__add__函数的用法
2019/11/25 Python
python上selenium的弹框操作实现
2020/07/13 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
软件测试工程师结构化面试题库
2016/11/23 面试题
公司会计主管岗位责任制
2014/03/01 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
Golang: 内建容器的用法
2021/05/05 Golang
Django drf请求模块源码解析
2021/06/08 Python
利用python做数据拟合详情
2021/11/17 Python