中间件中判断问题

我通过get方式传递一个age=22的参数,$request->age可获取到相应的值,但是执行下图13行代码时,为什么if判断通过了,直接输出14行内容了?

clipboard.png

clipboard.png

clipboard.png

阅读 3.3k
4 个回答
你的访问的url不对的,
Route::get('/ages=test/{age}',['middleware'=>'test',function($age){
    return "年龄符合标准";
}]);这个路由 传参的时候,age只需要传数字,不要age=22 这个就是字符串了,所以dd($request->age)
出来是“age=22”,数字比较的时候,字符串转换为0 ,所以一直进入if语句

clipboard.png
很诡异的url
应该为:www.laraveltest.com:8888/agetest/22
或者:www.laraveltest.com:8888/agetest?age=22

你访问的url不对

根本没有理解传参数的用法啊。你是刚用laravel吧。使用不对的。你写的{age}只是一个占位符类似的东西,你路由后面跟的age=22,那相当于参数就是age=22啊。你直接跟上22就行了,不用加age。谢谢

写成这个试试

if(($request->age) <18)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题