【发布时间】:2018-04-15 19:27:33
【问题描述】:
我正在尝试获取用户的通知。但是当我在 NotificationController 中的方法 get() 开始时,它总是返回 null。这是我用来调试此功能的实际代码:
function get(){
$user = \App\User::find(12);
dd($user->notifications);
}
路由是 POST 方法,我用 Postman 来测试。我总是收到带有空内容的错误 500。 你知道为什么吗 ? 提前致谢
[编辑] 这是带有 POST 请求的 get() 方法的 dd($user) 结果:
{
"id": 13,
"rang": 1,
"image": "https://www.drupal.org/files/profile_default.jpg",
"firstname": "Donald",
"lastname": "Torp",
"email": "ashlynn.mcclure@pacocha.com",
"created_at": null,
"updated_at": null
}
这实际上是我的数据库通知表的内容:
ID : e7f54269-a5ff-4109-9b8a-c2328fb6cf98
Type : App\Notifications\IdeaSelected
notifiable_type : App\Idea
notifiable_id : 13
data : {"idea":{"id":39,"name":"okeefe","description":"Sunt soluta et eum. Vitae sint adipisci et excepturi eos est exercitationem velit. Mollitia hic aut aperiam cum incidunt dolorem sed. Ut blanditiis eos temporibus hic illum quis.","image":"https:\/\/lorempixel.com\/400\/280\/?98265","user":13,"created_at":null,"updated_at":null}}
read_at :
created_at : 2018-04-14 00:57:37
return (dd($user->load('notifications'))); 的结果:
#relations: array:1 [
"notifications" => DatabaseNotificationCollection {#549
#items: []
}
]
如果我将 notifiable_type 从 App\Idea 更改为 App\User 的结果:
[
{
"id": "e7f54269-a5ff-4109-9b8a-c2328fb6cf98",
"type": "User::class",
"notifiable_type": "App\\User",
"notifiable_id": 13,
"data": {
"idea": {
"id": 39,
"name": "okeefe",
"description": "Sunt soluta et eum. Vitae sint adipisci et excepturi eos est exercitationem velit. Mollitia hic aut aperiam cum incidunt dolorem sed. Ut blanditiis eos temporibus hic illum quis.",
"image": "https://lorempixel.com/400/280/?98265",
"user": 13,
"created_at": null,
"updated_at": null
}
},
"read_at": null,
"created_at": "2018-04-14 00:57:37",
"updated_at": "2018-04-14 00:57:37"
}
]
【问题讨论】:
-
你能给我们提供更多关于这些关系的信息吗?
-
@StefanoGroenland 我将通知属性添加到用户类,这是我的 IdeaSelected.php 文件(通知类):
class IdeaSelected extends Notification { use Queueable; public $idea; public function __construct(Idea $idea) { $this->idea = $idea; } public function via($notifiable) { return ['database']; } public function toDatabase($notifiable) { return [ 'idea_id' => $this->idea->id, 'idea_name' => $this->idea->name, ]; } } -
你的意思是通知特征?
-
是的特性,对不起。这个:
class User extends Authenticatable { use Notifiable; -
如果你 dd($user) 你得到一个用户,对吗?
标签: laravel notifications