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?
You have typo in your observer class. Replace use App\Model\Parner;
in line 7 with use App\Model\Partner;