字数:755
作者:workcool
阅读预计3分钟
一个非常普遍的场景:用户在页面上输入一些内容并提交,网站根据用户输入的内容做出特定操作。
一、构建Form表单
根据实际需求来设计表单样式,一定要加上csrf_token,例如:
![39575af2ce110f949879a08484727853.png](https://i-blog.csdnimg.cn/blog_migrate/824e0a73906b94a7d5790acc731bc494.jpeg)
Form表单
action=' ' 意味着会将用户输入提交到当前页面
![8bebcdfa08b2b0a7d2eecc7203d07932.png](https://i-blog.csdnimg.cn/blog_migrate/951e7d89f53e06117b21cc52873201f9.jpeg)
将用户输入提交到当前页面
二、接收请求
因为“视图控制器”里(有关介绍参考前文《如何自定义网页并跳转》),youxian.blade.php 这个页面由 “youxian” 这个函数负责控制显示(return view...),我们给函数添加 $request
![6fc9bc4902afddf23ec733b1fede4a9f.png](https://i-blog.csdnimg.cn/blog_migrate/50266129fa4107581ebb24c3254a8565.jpeg)
视图控制器方法
上面表单是提交给页面本身,这里需进一步区分:一种情况是仅仅打开 youxian.blade.php 这个页面,另一种情况是在 youxian.blade.php 这个页面上点了提交。
为了辨别不同情况,于是加入了 if($request->has('gongdanhao')) 来判断请求里是否包含 gongdanhao(input标签的name属性)。如果包含,则表明是点了提交了,通过 $request->input('gongdanhao') 获取用户输入的内容。
![c806f4e9bec7597099af57c002bfb27f.png](https://i-blog.csdnimg.cn/blog_migrate/e7100923ecff64cf403ddf500e0debed.jpeg)
【补充】
strlen() 获得字符串长度,可用于判断内容是否为空,只把有效的内容作为查询参数。
Laravel 内置的 Eloquent ORM支持数组作为查询条件(例如 whereIn),数组可以这样构造:
$actionType=array();// $actionType1 为获取到的用户输入if(strlen($actionType1)>0){ $actionType[0]=[$actionType1];}if(strlen($actionType2)>0){ $actionType[1]=[$actionType2];}