【问题标题】:Laravel: Observer ErrorLaravel:观察者错误
【发布时间】:2017-08-25 01:25:56
【问题描述】:

创建合作伙伴时出现此错误:

(1/1) 错误异常

传递给 App\Observers\PartnerObserver::created() 的参数 1 必须是 >App\Observers\Partner 的实例,给定 App\Model\Partner 的实例

我的AppServiceProvider

namespace App\Providers;

//Models
use App\Model\Partner;

//Observers
use App\Observers\PartnerObserver;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Partner::observe(PartnerObserver::class);
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

我的Observer

<?php

namespace App\Observers;

use DB;
use Illuminate\Support\Facades\Auth;
use App\Model\Parner;
use Carbon\Carbon;

class PartnerObserver {

    /**
     * Listen to the Partner created event.
     *
     * @param  User  $user
     * @return void
     */
    public function created(Partner $partner) {

        $id = Auth::user()->id;
        if ($id > 0){
            $id = $id;
        } else {
            $id = 1;
        }
        DB::table('partners')
            ->where('id', $partner->id)
            ->update(['creator' => $id]);

    }

    /**
     * Listen to the Partner updating event.
     *
     * @param  User  $user
     * @return void
     */
    public function updating(Partner $partner) {

        $id = Auth::user()->id;
        if ($id > 0){
            $id = $id;
        } else {
            $id = 1;
        }
        $time = new Carbon();
        DB::table('partners')
            ->where('id', $partner->id)
            ->update(['updater' => $id]);

    }

    /**
     * Listen to the Partner deleting event.
     *
     * @param  User  $user
     * @return void
     */
    public function deleting(Partner $partner) {

        $id = Auth::user()->id;
        if ($id > 0){
            $id = $id;
        } else {
            $id = 1;
        }
        $time = new Carbon();
        DB::table('partners')
            ->where('id', $partner->id)
            ->update([
                        'deleter' => $id,
                        'deleted_at' => $time,
                    ]);

    }
}

我做错了什么?

【问题讨论】:

    标签: php laravel-5.4 observers


    【解决方案1】:

    您的观察者类中有错字。将第 7 行中的 use App\Model\Parner; 替换为 use App\Model\Partner;

    【讨论】:

      猜你喜欢
      • 2021-06-30
      • 1970-01-01
      • 2014-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-30
      相关资源
      最近更新 更多