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设计模式 Template (模板模式)
Jun 26 PHP
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
May 08 PHP
php文件夹与文件目录操作函数介绍
Sep 09 PHP
php无限遍历目录示例
Feb 21 PHP
对PHP语言认识上需要避免的10大误区
Jun 12 PHP
php array_slice 取出数组中的一段序列实例
Nov 04 PHP
PHP实时统计中文字数和区别
Feb 28 PHP
Laravel 创建指定表 migrate的例子
Oct 09 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
Feb 06 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
Apr 23 PHP
Laravel中Kafka的使用详解
Mar 24 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 和 XML: 使用expat函数(一)
2006/10/09 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
php的4种常用运行方式详解
2016/12/22 PHP
php使用curl实现简单模拟提交表单功能
2017/05/15 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
2020/02/21 PHP
用JAVASCRIPT如何给<textarea></textarea>赋值
2007/04/20 Javascript
flexigrid 类似ext grid的JS表格代码
2010/07/17 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
详解JavaScript基于面向对象之继承实例
2015/12/16 Javascript
详解javascript中原始数据类型Null和Undefined
2015/12/17 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
学习使用jquery iScroll.js移动端滚动条插件
2020/03/24 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
2019/06/06 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
微信小程序wx.getUserInfo授权获取用户信息(头像、昵称)的实现
2020/08/19 Javascript
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
深入解析Python中的线程同步方法
2016/06/14 Python
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
Python分支结构(switch)操作简介
2018/01/17 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
python中如何设置代码自动提示
2020/07/15 Python
python 制作简单的音乐播放器
2020/11/25 Python
使用HTML5 Canvas API控制字体的显示与渲染的方法
2016/03/24 HTML / CSS
澳大利亚家具商店:Freedom
2020/12/17 全球购物
借条格式范本
2015/05/25 职场文书
新党员入党决心书
2015/09/22 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书
2019消防宣传标语!
2019/07/10 职场文书