shared._errors 和 Auth::user () 两个问题?

问题1:
session/create.blade.php 加上 @include('shared._errors') 就报错
file
View [shared._errors] not found. (View: .../Apps/sample/resources/views/session/create.blade.php)
去掉可以正常显示,不过,也不显示Email password 校验信息。
file
问题2:
session()->flash和 [Auth::user()] 似乎都没有生效,
使用 redirect()->route('users.show',1); 可以正常显示
file
使用 route('users.show' , [Auth::user()]);就会报错
BadMethodCallException
Method [index] does not exist on [App\Http\Controllers\UserController].
file
注:环境是composer 生成的 ,运行环境是阿里云 ubunt 32位系统,nginx+php7,非homestead 盒子。憋了好久也不知道什么原因,似乎是缺少什么配置了。麻烦大神帮忙指点

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

@EastGreatwolf
它的逻辑性是没错的,你看看 7.2. 会话 是不是密码错误,或者设置验证出问题了,因为你直接通过访问用户是没问题,但是你忽略了通过 密码验证 正确性,你后期接触到权限策略就不能直接访问https://XXXX/users/1

6年前 评论
讨论数量: 12

可以截图一下views文件夹下的结构吗?

6年前 评论

问题1:找不到视图文件resources\views\shared_errors.blade.php(ps:查看下是不是路径名写错)
问题2:
(1)是Auth::attempt($credentials)而不是!Auth::attempt($credentials),你可以通过输入错误密码验证
(2)redirect()->route('users.show',[Auth::user()])没错,是因为你if判断相反的原因,导致[Auth::user()]没有获取用户id,所以为空,等于你在访问的是 https://sample.app/users/ 等于users.index,也由于uses.index方法未定义,所以显示不存在错误

6年前 评论

@1366453994
1.整个 工程下都没有shared_errors.blade.php 这个文件,我也刚接触php不知道她是怎么来的。
2.其实我是想 进入if 分支,所以加如!(目的和写死成true类似)。 条件 !Auth::attempt($credentials) 似乎并没有生效
我不是想访问 https://XXXX/users/ ; 我其实想表达的是想访问https://XXXX/users/1 ,直接这样访问可以,
下图是 教程中的截图,
file
file

6年前 评论

@EastGreatwolf
第一个问题就是要求你导入文件resources\views\shared_errors.blade.php ,你阅读下 6.5. 注册失败错误消息
第二个问题就是因为你!Auth::attempt($credentials) 导致访问了https://XXXX/users ,你取消!试试吧

6年前 评论

@1366453994
首先:非常感谢耐心解答,
1.我竟然漏看了6.5,(T_T)。
2.去掉!会进入else 分支,但如你所说,应该是 Auth::attempt($credentials) 成功后 [Auth:user()] 才会返回 该条记录的id值,我可以这样理解吧。那么问题其实出在 Auth::attempt($credentials) 这

6年前 评论

@EastGreatwolf
它的逻辑性是没错的,你看看 7.2. 会话 是不是密码错误,或者设置验证出问题了,因为你直接通过访问用户是没问题,但是你忽略了通过 密码验证 正确性,你后期接触到权限策略就不能直接访问https://XXXX/users/1

6年前 评论

@1366453994 说的有道理
file
我尝试向数据库新增记录,一个密码是明文,一个是密文,两者都会进入else分支。
file
我如何才能查直观看attempt($credentials)处
来自页面和数据库的密码呢,如:log或者终端打印出来
(之前我尝试过 取$request->email和password,可以看到不过方法很low ,route($request->email),这样地址栏就能看到链接了哈哈)
我配置了 debugbar.php 但,没有错误信息。

file

6年前 评论

@EastGreatwolf 密码是通过bcrypt加密的,而中间件Auth::attempt也是把你输入的密码通过bcrypt与数据库中的密码作比对,再不然你重新注册一个登录试试

6年前 评论

@1366453994 如你所说,刚刚抽空 用tinker create 一条新数据,就通过了。哈哈 :+1:

6年前 评论

@EastGreatwolf 所以错的不是逻辑,错的是数据,以后注意了,多多关照

6年前 评论

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