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

Laravel:如何在JavaScript中获取Auth Guard的认证管理员信息?

解决Laravel多认证管理员信息传递到JavaScript的问题

你的问题出在两个关键地方:一是没有把PHP获取到的管理员对象输出到页面中,二是直接输出PHP对象会生成JS无法解析的字符串,必须转换成标准JSON格式。下面给你几种可行的解决方案:

方法一:使用Blade自带的@json指令(推荐)

Laravel Blade提供了@json指令,可以安全地将PHP变量转换成JSON格式,同时自动处理转义问题,用起来非常省心:

var adminData = @json(Auth::guard('admin')->user());
console.log(adminData);

如果需要处理管理员未登录的场景(避免输出null引发的潜在问题),可以加上空值合并运算符做兼容:

var adminData = @json(Auth::guard('admin')->user() ?? null);
console.log(adminData);

方法二:手动使用json_encode输出

如果你更习惯原生PHP写法,也可以手动用json_encode将对象转换成JSON字符串,再通过echo输出到页面:

var adminData = <?php echo json_encode(Auth::guard('admin')->user()); ?>;
console.log(adminData);

为什么你的原代码无法工作?

你之前的代码<?php Auth::guard('admin')->user();?>只是在PHP层面获取了用户对象,但没有把这个对象的内容输出到HTML页面里,所以JS的data变量实际上拿到的是空内容;另外,就算你直接输出这个PHP对象,它会被转换成类似[object Object]的无效字符串,JS根本无法识别这种格式,必须转换成标准JSON才能被正确解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:49:57