syntax error, unexpected '->' (T_OBJECT_OPERATOR)

43 篇文章 0 订阅
40 篇文章 1 订阅

laravel项目报错集锦

非预期的对象操作符

ErrorException (E_ERROR)
syntax error, unexpected '->' (T_OBJECT_OPERATOR) (View: D:\laragon323\www\lar57\blog57\resources\views\admin\partials\errors.blade.php) (View: D:\laragon323\www\lar57\blog57\resources\views\admin\partials\errors.blade.php)

排查,是模板对象变量书写错误,极大可能出现如下错误

  • 变量名少个$符
  • 控制器传过来的渲染对象变量名与模板所在的对象变量名不一致。

419 session过期错误

通常在诸如登录这种场景时,出现此种错误

419
Sorry, your session has expired. Please refresh and try again.

分析

  • session的确过期了
  • session在服务端与客户端之间没有得到正常传递
  • csrf验证导致,数据不一致,或被拦截

laravel会在html文档的meta内,
或ajax请求的header头,或表单隐藏域,通过csrf_token()生成
后台中间件VerifyCsrfToken会进行验证

方案

  • 前两种情况,极易排除
  • 后者要么在中间件except属性项排除不验证的请求
  • 要么老老实实正确的在前端页面视场景加上如下合适的代码
// 文档头部
<meta name="csrf-token" content="{{ csrf_token() }}"> 
// ajax请求时
$.ajaxSetup({headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}});
// 表单
<input type="hidden" name="_token" value="{{ csrf_token() }}">

  • 补充
    • 前端页面填写错误,比如name错了,数据不一致也会报419
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值