把这三个方法放到外面,别用中间件。
没有添加验证 需要在添加之前加入验证
$validator=\Validator::make($request->input(),[ 'student.name'=>'required|min:2|max:10', 'student.age'=>'required|integer', 'student.sex'=>'required|integer' ],[ 'required'=>":attribute不能为空", 'integer'=>":attribute必须是整数", 'min'=>':attribute最小不能少于2字符' ],[ 'student.name'=>'姓名', 'student.age'=>'年龄', 'student.sex'=>'性别' ]); if($validator->fails()){ return redirect()->back()->withErrors($validator)->withInput(); }
请问如何解决的
你模型里应该没有定义$fillable
解决了! 参考这篇:https://blog.csdn.net/cnwyt/article/details/79540396
在页面上:{{csrf_field()}} 就好了
// 保存添加 public function save(Request $request) { $data = $request->input('Student'); $student = new Student(); $student->name = $data['name']; $student->age = $data['age']; $student->sex = $data['sex']; if ($student->save()) { return redirect('student/index'); } else { return redirect()->back(); } }
时间过长 因为这个csrf 可以自动修改时间
数据表字段设置了不能为空,所以在插入的时候要求必须填写姓名
引用下面的答案,大自然的搬运工~这是5.2版本升级中的一个坑。下面这个网址有具体原因说明:https://laravel-china.org/topics/2113/laravel52-some-version-changes-lead-to-session-flash-can-not-use-pit
没有save, 可以用insert
:Manager.php文件第90行 有无效数组
是不是参数名称什么的拼错了?
你再查一查 不然贴个代码出来?
if(confirm('确认要删除吗?')==false) return false; 把这段代码粘贴到onclick事件中,对比自己原来的代码仔细看一下。
我把 getDateFormat asDateTime 去掉了,然后把时间与日期格式改为varchart格式,
这个错误就不会有,
但在格式化日期的时候 date(‘Y-m-d’, ???)又遇到错误,我无法解决,
我也知道 他的错误是这个意思,但是不知道怎么解决。去掉中间件以后就不会出任何问题。代码就按照老师写的一模一样的。 版本是5,2
应该是表单令牌错误,在表单中添加
<input type="hidden" name="_token" value="{{csrf_token()}}"/>
<?php namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ 'student/save' ]; }
没有图片吗?没有图片不知道什么错啊
5.2版本有的已经默认开启session了 不需要中间件,去掉你试下
https://pan.baidu.com/s/1c2smMYG
少一个use,写多了
是路由那边的get请求改成any就行了。
但改成any后会报新错:
TokenMismatchException in VerifyCsrfToken.php line 67:
这是post请求没有打开表单令牌而导致的。
解决方法:
在form表单里随便放个隐藏域
<input type="hidden" name="_token" value="{{csrf_token()}}"/>
就可以了。
这错卡了我一整天
检查下你的命名空间
说你的User对象没有username这个字段,先检查数据库,没问题看你的controller和model,看有没有拼错什么
新版本已经不需要加web中间件启动Session了,加了等于启动两次反而不行,老师的5.2版本跟现在最新的5.2版本有些区别的