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

Vue+Laravel+Inertia中$page.props.user.name返回undefined求助

问题解决:$page.props.user.name 返回 undefined 的原因及修复

问题根源

你在Laravel控制器中使用了 User::all(),这个方法会返回所有用户的集合(对应前端的数组),而不是单个用户对象。所以前端拿到的 this.$page.props.user 是一个包含多个用户的数组,直接访问 user.name 自然会返回 undefined——因为数组本身没有name属性,只有数组里的每个用户对象才有。

两种修复方案

根据你的需求选择对应的方案:

方案1:传递当前登录的单个用户

如果你原本想传递的是当前登录用户,修改Laravel控制器代码:

public function home(){
  $user = auth()->user(); // 获取当前登录的单个用户对象
  return Inertia::render('Home', [ 'user' => $user]);
} 

此时前端代码无需修改,this.$page.props.user.name 就能正常获取到用户名称。

方案2:传递用户列表并正确访问

如果你确实需要传递所有用户的列表,修改前端代码来遍历数组或访问指定用户:

mounted(){
  console.log(this.$page.props.user) // 打印用户数组
  // 遍历所有用户,打印每个用户的名字
  this.$page.props.user.forEach(user => {
    console.log(user.name)
  })
  // 或者获取第一个用户的名字(可选,根据需求调整索引)
  console.log(this.$page.props.user[0]?.name)
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 19:35:22