首页 > 解决方案 > Axios GET 使用 Laravel 和 Vue JS 从数据库返回 [0, 0, 5] 而不是 UUID

问题描述

当我昨天面对它时,这个问题对我来说看起来很简单!但是当我在谷歌上没有找到类似的问题时,我意识到这并不像我想象的那么简单!!!
因此,如果自昨天以来我没有找到任何类似的问题,请告诉我。

我正在尝试使用 Laravel 从数据库中传递数据。我使用 UUID 作为通知表的主键,而不是自动递增的主键(这是 Laravel 中通知表的默认选项!)。
我可以按原样获取和读取所有其他列,但 UUID 类型的 ID 列是 0 OR 0 OR 5 或任何其他单个数字,但真实 ID 可以是1367dc99-ee67-4f0f-b0eb-c2215831d7db
坦率地说,我不知道我在 Laravel 或 Vue JS axios 中使用的方法有什么问题。

我应该使用任何特定技术从后端读取 UUID 到前端吗?请帮我解决一下这个。

我在下面附上了来自 Laravel 和 Vue JS Axios 的代码。如果我的问题中缺少任何内容,请告诉我。

Laravel 代码

$notifications = Notifications::where('notifiable_id', auth()->user()->id)->orderBy('created_at', 'DESC')->get();

return response()->json(
[
   "notifications" => $notifications
]

Vue JS Axios GET 方法

data () {
   return {
      loading: false,
      unreadNotifications: []
   }
},
methods: {
  async Notifications () {
    this.loading = true
    await axios.get('/user/notifications/unreads')
        .then((response) => {
            this.unreadNotifications = response.data
        })
        .finally (() => {
            this.loading = false
        })
  }
}

输出为 [ 0, 5 ]

标签: laravelvue.jsaxiosgetuuid

解决方案


如果您想这样显示id1367dc99-ee67-4f0f-b0eb-c2215831d7db,然后通过以下方式修改您的查询:

$notifications = DB::table('notifications')
         ->where('notifiable_id', auth()->user()->id)
         ->orderByDesc('created_at')
         ->get();

return response()->json([
       "notifications" => $notifications
    ]);

推荐阅读