【问题标题】:what is retrieved in model event life cycle on laravel?在 laravel 的模型事件生命周期中检索到什么?
【发布时间】:2018-04-22 06:43:53
【问题描述】:

laravel 有很多事件模型,比如 creating , saved 等等。

https://laravel.com/docs/5.5/eloquent#events

我唯一不明白的。活动是retrievedrestored。有人可以举个例子给我解释一下吗?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    retrived 事件在您检索模型时触发。

    当您在soft deletion 之后恢复模型时,会触发 restored 事件。

    您可以查看资源以深入了解 Eloquent 工作流程。查看here 表示已恢复here 表示已恢复

    因此,例如,您可以为 User 模型创建一个 observer 并在那里为您感兴趣的事件实现侦听器。

    <?php
    // app/Observers/UserObserver.php
    
    namespace App\Observers;
    
    use App\User;
    
    class UserObserver
    {
        public function retrieved(User $user)
        {
            //
        }
    
        public function restored(User $user)
        {
            //
        }
    }
    

    然后在你的 AppServiceProvider 中注册观察者。

    <?php
    // app/Providers/AppServiceProvider.php
    
    namespace App\Providers;
    
    use Illuminate\Support\ServiceProvider;
    use App\User;
    use App\Observers\UserObserver;
    
    class AppServiceProvider extends ServiceProvider
    {
        public function boot()
        {
            User::observe(UserObserver::class);
        }
    
        public function register()
        {
            //
        }
    }
    

    【讨论】:

      【解决方案2】:

      基于 laravel docs 当从数据库中检索到现有模型时,retrieveed 事件将触发。

      例如,如果您的应用程序中有一个用户模型,则必须在用户模型中定义如下代码。

      protected $dispatchesEvents = [
          'retrieved' => \App\Events\UserRetrieved::class,
      ];
      

      【讨论】:

      • 请以模特活动为例@kaivan-alimohammadi
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多