为了账号安全,请及时绑定邮箱和手机立即绑定

laravel 表单验证器的问题

laravel 表单验证器的问题

杨魅力 2019-04-27 17:16:58
在使用laravel做文章添加时。验证器TopicRequest.phppublicfunctionrules(){return[//CREATEROLES'title'=>'required','category_id'=>'required','body'=>'required','user_id'=>'required'];}控制器TopicController.phppublicfunctionstore(TopicRequest$request,Topic$topic){$topic->fill($request->all());$topic->user_id=\Auth::id();$topic->save();returnredirect()->route('topics.show',$topic->id)->with('success','文章创建成功.');}user_id是根据登录用户的id产生的,并不想从前段页面表单中传隐藏域获得.这里有一个问题:文章新建每次都提示user_id不能为空.这里代码需要怎么修改了,尤其控制器TopicController?laravel的验证器运行机理是怎样的,这里是不是需要将user_id加入TopicRequest对象中,请高手赐教题目描述题目来源及自己的思路相关代码//请把代码文本粘贴到下方(请勿用图片代替代码)你期待的结果是什么?实际看到的错误信息又是什么?
查看完整描述

2 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

执行流程:访问网页>TopicRequest>store,所以说在TopicRequest的时候当然你获取不到相关的user_id啊,你注意
                            
查看完整回答
反对 回复 2019-04-27
?
心有法竹

TA贡献1866条经验 获得超5个赞

Laravel先到验证器里验证,没问题了才进入控制器中。估计你提交表单的时候没有传入user_id字段,所以每次都会提示user_id不能为空。
解决方法:验证器里不需要对user_id进行验证,Laravel将已登录用户的信息存在session里,使用\Auth::id()或\Auth::user()取用就行。
                            
查看完整回答
反对 回复 2019-04-27
  • 2 回答
  • 0 关注
  • 356 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信