tp5.0使用$this->request->param()获取参数时,多增加了路由地址参数

本文介绍了解决使用$this->request->param()和$this->request->get()时出现的路由地址参数多余问题的方法。通过修改.htaccess文件中的重写规则,可以有效地避免路由参数的重复加载,确保应用程序正常运行。

在使用$this->request->param()和$this->request->get()时,会多出路由地址参数
在这里插入图片描述

解决方法

更改/public/.htaccess文件

<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]
</IfModule>

以下是对 `addPost` 方法代码的逐行解释: ```php public function addPost() { // 这行代码的作用是从当前请求中获取所有的参数,并将其存储在变量 $data 中。 // $this->request 代表当前的请求对象,param() 方法用于获取请求中的参数。 $data = $this->request->param(); // 实例化一个 RouteModel 类的对象,该对象可以用于与数据库中 Route 相关的数据表进行交互, // 后续可以使用这个对象进行数据的插入、更新、查询等操作。 $routeModel = new RouteModel(); // 使用 validate 方法对 $data 数组中的数据进行验证,验证规则定义在 'Route' 验证器类中。 // validate 方法会根据验证规则检查 $data 中的数据是否符合要求,并返回验证结果。 $result = $this->validate($data, 'Route'); // 检查验证结果是否为 true,如果不是 true,说明数据验证失败。 // 当验证失败使用 $this->error 方法输出错误信息,参数 $result 包含了具体的错误信息。 if ($result!== true) { $this->error($result); } // 调用 $routeModel 对象的 allowField(true) 方法,该方法允许模型在保存数据接收并处理所有字段, // 不进行字段过滤。然后使用 save 方法将 $data 数组中的数据保存到数据库中。 $routeModel->allowField(true)->save($data); // 当数据成功保存到数据库后,使用 $this->success 方法输出成功提示信息。 // 第一个参数 "添加成功!" 是提示信息的内容,第二个参数使用 url 函数生成一个链接, // 链接指向 "Route/index" 页面,并传递一个参数 'id',其值为新保存数据的 id。 $this->success("添加成功!", url("Route/index", ['id' => $routeModel->id])); } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值