在“创建的”模型观察器中的MorphToMany关系为空

时间:2019-08-28 15:54:00

标签: laravel laravel-nova spatie

我正在使用Laravel Nova,并且有一个使用spatie/nova-tags-fieldEntry模型。 (该程序包在后台通过特征使用模型和标签之间的morphToMany关系

我在created事件上附加了模型观察员。

我想像这样在观察器中访问条目的标签:

public function created(Entry $entry)
{
    $tags = $entry->tags;
}

但是$tags始终是一个空数组[],但是以后我可以使用Entry :: find($ id)-> tags来访问models标签(不在观察者中,而是在其他任何地方) 。我的猜测是,观察者触发后,将为附加标签创建morphToMany数据透视表条目?

感谢您的输入。

2 个答案:

答案 0 :(得分:0)

由于尚未创建模型,请在观察者中尝试使用created方法,而不要使用creating

答案 1 :(得分:0)

您可以在Entry中覆盖attachTags方法,并在$this->wasRecentlyCreatedtrue时触发自定义事件。

您还可以收听your own tag modelcreated事件(或其他任何事件)。
$touches结合使用,可能会接近您期望的行为。但是显然,您的created的{​​{1}}事件将始终在附加任何标签之前触发。

相关问题