Laravel中10个有用的用法小结
时间:2022-07-27
本文章向大家介绍Laravel中10个有用的用法小结,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
本文给大家介绍了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 = AppUser::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('AppPhone');
}
}
$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 = AppUser::first();
$user- name; //John
$user- name = "Peter"; //Peter
$user- getOriginal('name'); //John
$user- getOriginal(); //Original $user record
- 小程序上线“小游戏”,正式引爆3.0社交红利
- 漫谈人工智能机器翻译的前世今生
- 并发与实例上下文模式: WCF服务在不同实例上下文模式下具有怎样的并发表现
- 区块链将变革的五个行业
- WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[上篇]
- AngularJS in Action读书笔记3——走近Services
- 有了这些无人驾驶的汽车,未来还需要考驾照吗?
- 并发与实例上下文模式: WCF服务在不同实例上下文模式下具有怎样的并发表现
- AngularJS in Action读书笔记4(实战篇)——创建Statistic模块
- Effective Deep Memory Networks for Relation Extraction
- ConcurrencyMode.Multiple模式下的WCF服务就一定是并发执行的吗:探讨同步上下文对并发的影响[上篇]
- WCF技术剖析之二十一:WCF基本异常处理模式[下篇]
- AngularJS in Action读书笔记5(实战篇)——在directive中引入D3饼状图显示
- WCF中并发(Concurrency)与限流(Throttling)体系深入解析系列[共7篇]
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- 在群晖docker上构建私有云IDE和devops构建链
- 小白学PyTorch | 14 tensorboardX可视化教程
- Apache Solr 漏洞复现
- Elasticsearch rollover API
- 重发和重定向有什么区别与重定向应用
- 为tinycolinux制作应用包
- CrossC2的2.0版本
- 使用OpenCV和Python计算图像的“色彩”
- 为tinycolinux创建应用包-toolchain和编译方法
- [译]在Solidity中如何优化Gas第一部分:变量
- [译]Solidity 0.7.0 新变化
- 两个数组的交集 II
- 常说的手机刷新率60Hz、120Hz有什么不同?
- Istio 运维实战系列(3):让人头大的『无头服务』-下
- java安全编码指南之:可见性和原子性