模型事件retrieved执行了两次

是不是save中又查询了一次模型?

<?php
static::retrieved(function ($user) {
    if (!$user->qr_code) {
        $writer = new PngWriter();
        $result = $writer->write(QrCode::create($user->token));
        $filename = 'user-qr-code/'. $user->token .'.png';
        $result->saveToFile(storage_path('app/public') . '/' . $filename);
        $user->token = (string) Str::uuid();
        $user->qr_code = $filename;
        $user->save();
    }
});
让PHP再次伟大
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php

/**
     * Create a new model instance that is existing.
     *
     * @param  array  $attributes
     * @param  string|null  $connection
     * @return static
     */
    public function newFromBuilder($attributes = [], $connection = null)
    {
        $model = $this->newInstance([], true);
        $model->setRawAttributes((array) $attributes, true);
        $model->setConnection($connection ?: $this->getConnectionName());
        $model->fireModelEvent('retrieved', false);
        return $model;
    }

创建一个新的实例的时候会触发的样子?我只是粗略的搜索了一下

2年前 评论

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