tp5开启强制路由怎么用ajax提交,TP5 路由使用

本文详细介绍了ThinkPHP5中的路由配置,包括如何开启路由、定义路由规则以及通过不同方法获取路由参数。在示例中,展示了如何在路由中定义变量并测试获取这些变量的值。同时,探讨了在网页上使用路由链接的实践方法,强调了正确生成和管理路由链接的重要性。此外,还提到了动态生成路由链接的方法,确保在需求变更时能方便地进行调整。
摘要由CSDN通过智能技术生成

1 开启路由配置

// 是否开启路由

'url_route_on'           => true,

// 路由使用完整匹配

'route_complete_match'   => true,

// 是否强制使用路由

'url_route_must'         => true,

2 定义路由 并测试获取路由参数和?后的参数

看一下文档中的路由参数 提供了很多方法开快捷定义路由的,

我们这里使用

Route::get() 和Route::post()两种方式来配置路由

在路由文件中声明使用路由

use think\Route;

定义第一个路由 比如

Route::get('hello','index/test/hello');

第一个参数是我们实际需要在链接中要访问的地址 ,第二个参数是实际应用要走的module/controller/action

我们可以在

index/test/hello

对应的hello 方法中 echo ''你好';

访问  域名/hello

可以看到在浏览器上输出

你好

接下来我们修改一下路由

Route::get('hello/:id','index/test/hello');

在hello 方法中

dump(input('get.id'));

dump(input());

dump(request()->get());

dump(request()->get('id'));

dump(request()->param());

dump(request()->param('id'));

dump(request()->route());

dump(request()->route('id'));

返回结果是依次是

null

array (size=1)

'id' => string '10' (length=2)

array (size=0)

empty

null

array (size=1)

'id' => string '10' (length=2)

string '10' (length=2)

array (size=1)

'id' => string '10' (length=2)

string '10' (length=2)

其中

dump(input('get.id'));

dump(request()->get());

dump(request()->get('id'));

这三种获取参数的方式 ,在定义了路由,并且路由中定义了:id 这种变量时 是获取不到参数的

另外下面这种方式可以获取到参数

public function hello($id)

这里输出$id也可以获取到值。但是这里的 $id 必须要和 路由中的 :id 对应 变量必须相同

另外如果 在链接后面跟上参数

比如  域名/hello/10?name=123

使用上面的获取参数的方法 来获取name值 是都可以获取到值的,所以这里我们就需要需要合适的获取参数方法了

我们测试一下

dump(input());

dump(request()->get());

dump(request()->route());

dump(request()->param());

array (size=2)

'name' => string '123' (length=3)

'id' => string '10' (length=2)

array (size=1)

'name' => string '123' (length=3)

array (size=1)

'id' => string '10' (length=2)

array (size=2)

'name' => string '123' (length=3)

'id' => string '10' (length=2)

如果我们只想要自己定义的路由变量 就需要使用

request()->route()

获取参数

还有我们看到其中的

request()->get()

获取的参数只获得了我们 ? 后面的参数 ,并且在上面的没有添加name时是没有获取到参数的

所以路由里面的:id这种变量 我们不能使用

request()->get()

来获得参数

还有强调一下 我们最好不要用能获取?后面参数的方法来获取参数。如果实在是需要获取。我们最好能够准备的指定我们需要获取的参数变量

3 网页上使用路由链接

我们能够定义路由,并实际的访问了 我们看一下 在网页上怎么运用

你可能会说,既然我们定义了路由。那么直接上链接上拼接上链接不就可以了

我想说 这样是万万不好的

比如说我的上面的链接 /hello/:id  在链接上直接输入

这样的。当前这可以访问。但是这样的链接在运营的过程中使用的越来越多 如果哪天看着这个链接不顺眼了。或者说,老板找你,把这个链接改一下。难道你要一个一个的去找去改吗,这样的很麻烦。

既然说到这里了。必然会有解决办法的

我们可以看官方文档。url生成

我们在网页链接上直接按照原来没有定义路由时的思路来 写链接

tp5 生成链接的方式是使用url

{:url('index/test/hello?id='.$v['id'])}//这个是循环数据时拼接变量

这里更新为如下 在生成链接时 在后台增加->domain(true) 可以直接带域名。

原文:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值