如何解决将laravel观察者挂在控制器中
我创建了一个名为OfficeUserObserver的观察器,它也在我的提供程序中注册。我想要一种当用户连接到办公室时的情况。邮件将自动发送。 所以我的观察者看起来是这样:
class OfficeUserObserver
{
public function __construct()
{
dd('hi');
}
public function created(OfficeUser $officeUser)
{
dd('hi');
}
public function saving(OfficeUser $officeUser)
{
dd('hi');
}
}
我的控制器的外观如下:
public function assignUsers(MyRequest $request,Office $office)
{
...
$office->users()->syncWithoutDetaching($users);
}
但是,当我尝试将用户连接到办公室时。该过程是成功的,但是尽管在我的构造中使用了dd(),但在我看来,没有任何东西可以转储(dd())。我在做什么错了?
这是我的AppServiceProvider中的代码
public function boot()
{
OfficeUser::observe(OfficeUserObserver::class);
}
解决方法
如果要使用UserObserver,则应使用数据透视模型进行关联。
https://laravel.com/docs/7.x/eloquent-relationships#defining-custom-intermediate-table-models
class UserOffice extends Model {...}
观察者将为枢轴模型工作,但不适用于User
或Office
。
或将包用于关联事件: https://github.com/chelout/laravel-relationship-events
P.S .:很抱歉在上一次编辑中出现虚假信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。