laravel insert 、save、update、create 的区别

insert:插入数据时,需要维护 created_at 和 updated_at字段

要在数据库中创建新记录,只需创建一个新的模型实例,并在模型上设置属性,然后调用 save 方法:

<?php

namespace App\Http\Controllers;

use App\Flight;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class FlightController extends Controller
{
    /**
     * 创建一个新的航班实例。
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        // 验证请求...

        $flight = new Flight;

        $flight->name = $request->name;

        $flight->save();
    }
}

当我们调用 save 方法时,就会添加一条记录到数据库中。created_at 以及 updated_at 时间戳将在 save 方法被调用时会被自动设置,因此我们不需要去手动设置它们。

save:无论插入或者更新,会自动维护,无需手动操作

用 save 方法。同样的,updated_at 时间戳将会被自动更新,所以我们不需要手动设置它的值:

$flight = App\Flight::find(1);

$flight->name = 'New Flight Name';

$flight->save();

update:更新操作,自动维护 updated_at字段

save 方法也可以用来更新数据库中已经存在的模型。要更新模型,则须先检索模型,再设置要更新的属性,然后再调用 save 方法。同样的,updated_at 时间戳将会被自动更新,所以我们不需要手动设置它的值:

$flight = App\Flight::find(1);

$flight->name = 'New Flight Name';

$flight->save();

update 方法需要传入表示要更新的字段的字段的值的键值对数组。

通过 Eloquent 执行批量更新时,saved 和 updated 的模型事件不会被更新的模型触发。这是因为执行批量更新时,不会有任何模型被检索出来。

create:自动维护 created_at 和 updated_at两个字段

你也可以使用 create 方法来保存新模型,然后被插入数据库的模型实例会从方法返回。不过,在这之前,你需要先在你的模型上指定 fillable 或 guarded 的属性,因为所有的 Eloquent 模型在默认情况下都不能进行批量赋值。

$flight = App\Flight::create(['name' => 'Flight 10']);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值