Laravel: Observer Error

1.7k views Asked by At

I have this error when I create a partner:

(1/1) ErrorException

Argument 1 passed to App\Observers\PartnerObserver::created() must be an >instance of App\Observers\Partner, instance of App\Model\Partner given

My 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()
    {
        //
    }
}

My 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,
                    ]);

    }
}

What I did wrong?

1

There are 1 answers

0
Alireza Hoseinzadeh On BEST ANSWER

You have typo in your observer class. Replace use App\Model\Parner; in line 7 with use App\Model\Partner;