Laravel中10个有用的用法小结

admin3年前PHP教程37

本文给大家介绍了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. 重新加载一个 Mode


$user = User::find(1);
$user->name; // 'Peter'
// 如果 name 更新过,比如由 peter 更新为 John
$user->refresh();
$user->name; // John

5. 加载新的 Model


$user = User::find(1);
$user->name; // 'Peter'
// 如果 name 更新过,比如由 peter 更新为 John
$user->refresh();
$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

到此这篇关于Laravel中10个有用的用法小结的文章就介绍到这了,更多相关Laravel技巧用法小结内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

国内企业选择马来西亚服务器的原因?

国内企业选择马来西亚服务器的原因可能有以下几个方面:地理位置和网络连接:如果企业的目标用户或客户位于马来西亚或东南亚地区,那么选择在当地租用服务器可以降低访问延迟、提高网站速度和性能,从而提升用户体验...

详解Swoole TCP流数据边界问题解决方案

1. 数据发送过程首先由客户端将数据发往缓冲区 (服务端并不是直接收到的), 对于客户端来说,这次的数据即是发送成功了, 对于服务端是否真正的收到他是不知道的, 然后再由服务端从缓冲区中读取数据。图解...

成都gpu服务器可以搭建网站吗

GPU服务器常见相关问题?Q:什么是GPU服务器?A:GPU服务器是带显卡功能的服务器,可以在服务器上进行图形处理。Q:GPU服务器是否可以挂游戏?A:可以,可能部分游戏不兼容,可以咨询客服!Q:GP...

详解PHP调用Go服务的正确方式

目录问题服务耦合服务抽取Unix Domain Sockets进程间通信简单介绍适用场景代码实现Go 实现的 Trie 树Go ServerPHP Client小结效率杂谈问题服务耦合我们在开发过程中...

如何选择合适的香港多ip服务器租用

选择合适的香港多IP服务器租用服务需要考虑许多因素。以下是一些要考虑的因素:IP地址数量:您需要确定您的应用程序需要多少IP地址,并选择服务器提供商提供的IP地址数量。带宽:您需要考虑您的应用程序需要...

详解PHP Swoole长连接常见问题

目录连接失效问题如何解决如何维持长连接结论连接失效问题例子其中,Redis常见的报错就是:配置项:timeout报错信息:Error while reading line from the serve...