Laravel 文档中 Eloquent: 入门 部分翻译 的疑问 ?

快速入门《Laravel 5.4 中文文档》

{note} 当通过“Eloquent”批量更新时,saved和updated模型事件将不会被更新后的模型代替。这是因为批量更新时,模型从来没有被取回

关于上边的说法,不是很理解,谁能解释一下?

jaak
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 1
App\Flight::where('active', 1)
          ->where('destination', 'San Diego')
          ->update(['delayed' => 1]);

此处 update() 方法属于类 Illuminate\Database\Eloquent\Builder,进一步调用 Illuminate\Database\Query\Builder:

/**
     * Update a record in the database.
     *
     * @param  array  $values
     * @return int
     */
    public function update(array $values)
    {
        $sql = $this->grammar->compileUpdate($this, $values);

        return $this->connection->update($sql, $this->cleanBindings(
            $this->grammar->prepareBindingsForUpdate($this->bindings, $values)
        ));
    }

file
Laravel 文档在模型快速入门中指明 Eloquent 模型是查询构造器,当通过模型进行批量操作的时候,是通过查询构造器操作的。模型事件触发是针对某个特定的模型的,即是通过类 Illuminate\Database\Eloquent\Model 的方法操作的。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!