0

我们有一个连接到我们自己的第一方应用程序的 API。我们的 API 会根据用户操作或应用程序是否有更新等发送通知。

我们API是模块化结构的。

例子

我们user model的 in API 位于App\Modules\Accounts\Models\User. 每个月,我们都会通过 API 向用户发送发票数据库通知。在数据库中,它添加了通知和notifiable_typeis App\Modules\Accounts\Models\User

在此处输入图像描述

但是在我们的用户应用程序user modelApp\Modules\User,结果用户有 0 个通知。

问题

我知道我可以user model在用户应用程序中将其移动到完全相同的路径,但这似乎有些错误。有没有办法告诉user model我们user application在哪里接收数据库通知?就像是:

public function(){
    return $this->receivesNotificationsFrom('App\Modules\Accounts\Models\User');
}
4

1 回答 1

0

我会像这样在api中解决这个问题(建议,我也会像你一样为用户使用你的命名空间,我永远不会这样做,但让我们提出建议)。有几种测试方法,什么是最适合您的解决方案。

我会:

  1. 在您的消费应用程序中,您创建了一个新模型App\Modules\Accounts\Models\User,它只是扩展了您现有的User类。我会测试,如果我能用这种方法达到目标。

  2. 您创建一个工匠命令来重命名表中的类notification并让它由 laravel 的调度程序运行,因此在您的notifications表中是您应用程序的正确命名空间。

  3. 这一切都“感觉”错了,我永远不会打破默认值App\User,因为你会遇到这样的陷阱,最终会得到像 1 或 2 这样的“混乱”解决方案。

对不起,我现在没有更好的想法,但也许,它会给你一些小灵感

于 2019-11-21T08:18:49.617 回答