我为我的数据透视表CreatorListing
创建了一个观察者,我不知道为什么它不会触发created
事件。我甚至尝试了其他像creating, saving, and saved
,但他们不会通过。
在我的控制器里
public function getSponsored(Listing $listing)
{
$this->authorize('canRequestGetSponsored', $listing);
$listing->creators()->attach(auth()->user()->creator->id, [
'workflow' => new ValueObjectsWorkflow(PlatformType::Google)
]);
return response()->ok(null, __('Listing added. Accept the contract to continue.'));
}
在我的列表模型中
public function creators()
{
return $this->belongsToMany(Creator::class)
->withPivot('counter_offer', 'workflow', 'is_contract_signed', 'is_accepted', 'review_status')
->withTimestamps()->using(CreatorListing::class);
}
在我的观察者中,它只是一个简单的dd
语句。
public function created(CreatorListing $creatorListing)
{
dd(1);
}
之前,我没有添加->using(CreatorListing::class);
行。代码没有显示任何错误,但它不会调用dd
或观察者事件。现在我添加了这一行,它显示为Array to string conversion
。我不知道我错过了什么,或者我做错了什么?
我只是按照这篇文章的参考https://mayahi.net/laravel/observe-pivot-tables-in-laravel/
1条答案
按热度按时间mfpqipee1#
在服务提供商中添加此。此外,Pivot还应扩展Model。明确定义关系,不要让laravel猜测列。