后端给前端传了一个参数,不知道是不是写法错误



一直报错,点击红色圈起来的地方就可以运行,代码也被修改了

代码修改后里面的if,else 语句就没有办法执行了,登录页没有输出数值
控制器代码,有传$member的值

修改if的语法后不报错了,但是没有办法正常输出登陆数值
![

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 9

已经很明显了,你的控制器里有分支条件很关键:

if(!$data['item']){
    return view('shop/page404');
}

你以为你的代码会向下执行到最后view('shop/detail'),但实际是提前进入了view('shop/page404'),在shop/page404页面里,有公共的 header.blade.php 模板。再回头看你的控制器,在进入分支流程时,没有给$data赋值member键名,导致shop/page404中的公共模板报错。

解决办法就是把$data['member'] = $member; 这句代码向前移动,放到 $member = Auth::guard('member')->user(); 后即可。

3年前 评论

控制器的代码贴出来看看?

3年前 评论
@if($member && $member->phone)

试试这个,但根本原因是没有在 Controller 中定义保存这个变量导致的。

3年前 评论
PYA_24 (楼主) 3年前

在用户没有登录时,可以传$member=null

否则在判断时,应该用if(isset($member))来判断member变量是否存在

需要看看你在controller里是怎么给member赋值的

3年前 评论
aa24615 3年前
PYA_24 (楼主) 3年前

建议代码贴全

3年前 评论
PYA_24 (楼主) 3年前

controller 里 view('模板', $data) 返回的数组里没有 member 这个key,可以用 isset(),或者empty() 先判断变量是否存在

3年前 评论
PYA_24 (楼主) 3年前

已经很明显了,你的控制器里有分支条件:if(!$data['item]),这里很关键。你以为你的代码会向下执行到最后view('shop/detail'),但实际是提前进入了view('shop/page404')。在shop/page404页面里,有公共的 header.blade.php 模板。再回头看你的控制器,在进入分支流程时,没有给$data赋值member键名,导致shop/page404中的公共模板报错。

3年前 评论
PYA_24 (楼主) 3年前
leo

哎,运算符顺序……

($member ?? '') == null

PS: ''最好还是改成 null

($member ?? null) == null
3年前 评论
PYA_24 (楼主) 3年前
LiamHao 3年前
LiamHao 3年前
PYA_24 (楼主) 3年前
leo (作者) 3年前
PYA_24 (楼主) 3年前
LiamHao 3年前
PYA_24 (楼主) 3年前
LiamHao 3年前
PYA_24 (楼主) 3年前
LiamHao 3年前
PYA_24 (楼主) 3年前

自己解决了,逻辑错了,不是语法问题,在进入前台的时候分离后的公共文件已经在判断$member了,所有在登录就直接给模板赋值,而不是在付款页面

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!