Laravel Blade中Auth::user()->id报空属性错误如何修复?
修复Laravel Blade中Auth::user()->id读取null的错误
出现这个错误的核心原因是,尽管你用了Auth::check()判断用户登录状态,但在渲染route()函数时,Auth::user()却返回了null。可以通过以下几种方式修复:
改用Blade原生认证指令
Blade提供了@auth和@guest语法糖,比手动调用Auth::check()更可靠,能避免编译层面的逻辑偏差:@auth <form id="fileUploadForm" method="POST" action="{{route('scanningUpload',['user'=>Auth::user()->id,'person'=>$person->id])}}" enctype="multipart/form-data" > @endauth @guest <p> do some thing </p> @endguest提前缓存用户实例
先将用户实例存入变量,避免多次调用Auth::user()可能引发的状态不一致问题:@php $currentUser = Auth::user(); @endphp @if($currentUser) <form id="fileUploadForm" method="POST" action="{{route('scanningUpload',['user'=>$currentUser->id,'person'=>$person->id])}}" enctype="multipart/form-data" > @else <p> do some thing </p> @endif清理Blade模板缓存
旧的编译模板可能导致逻辑异常,执行命令清除缓存:php artisan view:clear检查路由中间件配置
确保当前页面的路由应用了web中间件——会话和认证功能依赖该中间件提供的Session支持,缺失的话会导致Auth::check()判断失效。
内容的提问来源于stack exchange,提问作者reza er
相关产品推荐
相关产品推荐

