You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel+Vue+Inertia仪表盘组件无法获取数据库数据问题

问题排查方向

以下是针对控制器能获取数据但Vue组件props接收不到的具体排查步骤:

1. 确认控制器数据传递的正确性

确保控制器通过Inertia::render返回数据时,键名与Vue组件接收的props完全一致(大小写敏感):

return Inertia::render('Dashboard', [
    'hins' => $hins, // 键名必须和Vue端props的名称严格匹配
]);

如果这里键名写错(比如写成hinList而不是hins),组件自然拿不到数据。

2. 检查Dashboard.vue的props接收与传递

首先确认Dashboard.vue是否正确接收了hins,并正确传递给Hin.vue:

<script setup>
import Hin from './Hin.vue';
// 定义接收的props
defineProps({
    hins: {
        type: Array,
        default: () => []
    }
});
</script>

<template>
    <!-- 必须使用动态绑定:hins传递变量,而非静态字符串 -->
    <Hin :hins="hins" />
</template>

如果写成hins="hins",传递的是字符串"hins"而非控制器返回的数组,会导致Hin.vue的props为undefined。

3. 验证Hin.vue的props定义

确认Hin.vue的props定义没有拼写错误:

<script setup>
const props = defineProps({
    hins: {
        type: Array,
        default: () => [] // 设置默认空数组避免undefined判断问题
    }
});
</script>

<template>
    <div v-if="props.hins.length === 0">No hins available</div>
    <div v-else>
        <!-- 渲染数据逻辑 -->
    </div>
</template>

注意如果使用<script setup>,直接访问hins可能需要解构,或者通过props.hins访问,避免作用域问题。

4. 检查Inertia共享数据是否冲突

如果在AppServiceProvider中使用了Inertia::share共享全局数据,确认没有意外覆盖hins字段,导致控制器传递的数据被覆盖为undefined。

5. 通过网络请求验证数据是否发送

打开浏览器开发者工具的Network标签,找到Dashboard对应的Inertia XHR请求,查看Response中的props部分:

  • 如果hins字段不存在或为空:问题出在控制器数据传递环节,重新检查查询逻辑和返回格式
  • 如果hins存在且有数据:问题出在Vue组件的接收或传递环节,重新检查props定义和绑定逻辑

内容的提问来源于stack exchange,提问作者Kiezgold

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 14:47:17