本文實(shí)例講述了thinkphp框架實(shí)現(xiàn)路由重定義簡(jiǎn)化url訪(fǎng)問(wèn)地址的方法。分享給大家供大家參考,具體如下:
如果按照正常訪(fǎng)問(wèn)的話(huà),則需要輸入一長(zhǎng)串的url地址,這樣會(huì)顯得十分冗長(zhǎng),我可以可以通過(guò)對(duì)路由規(guī)則的重新定義簡(jiǎn)化url訪(fǎng)問(wèn)地址。
?php
namespace app\index\controller;
class Index{
public function index(){
return '我是index';
}
public function hello($name='World'){
return 'Hello'.$name.'!';
}
}
?>
本來(lái)的訪(fǎng)問(wèn)路徑應(yīng)該是:
localhost/tp/index.php/index/index/hello
我們?cè)诼酚啥x文件(application/route.php)里面添加一些路由規(guī)則,如下:
return [
// 添加路由規(guī)則 路由到 index控制器的hello操作方法' hello/:name' => 'index/index/hello',
];
這是以hello開(kāi)頭的并且?guī)?shù)的訪(fǎng)問(wèn)都會(huì)路由到index控制器的hello操作方法。
此時(shí)路徑可以寫(xiě)為:
localhost/tp/hello/Thinkphp
此時(shí)輸出結(jié)果為:
HelloThinkphp!
改變路由規(guī)則后若使用原來(lái)的路徑訪(fǎng)問(wèn)方法后,則會(huì)出現(xiàn)錯(cuò)誤。
但此時(shí)有一個(gè)問(wèn)題是,如果訪(fǎng)問(wèn)地址為:
localhost/tp/hello
話(huà),會(huì)拋出 模板不存在的錯(cuò)誤,因?yàn)樵谠L(fǎng)問(wèn)時(shí),沒(méi)有傳參,而在定義路由規(guī)則時(shí),則帶有參數(shù)。
解決辦法是在修改路由規(guī)則為:
return [
// 添加路由規(guī)則 路由到 index控制器的hello操作方法' hello/[:name'] => 'index/index/hello',
];
使用[]
把路由規(guī)則中的變量包起來(lái),就表示該變量為可選,接下來(lái)就可以正常訪(fǎng)問(wèn)了。
當(dāng)name參數(shù)沒(méi)有傳入值的時(shí)候,hello方法的name參數(shù)有默認(rèn)值World,所以輸出的內(nèi)容為
Hello,World!
除了路由配置文件中定義之外,還可以采用動(dòng)態(tài)定義路由規(guī)則的方式定義,例如在路由配置文件(application/route.php)的開(kāi)頭直接添加下面的方法:
use think\Route;
Route::rule('hello/:name', 'index/hello');
完成的效果和使用配置方式定義是一樣的。
無(wú)論是配置方式還是通過(guò)Route類(lèi)的方法定義路由,都統(tǒng)一放到路由配置文件application/route.php文件中
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《ThinkPHP入門(mén)教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門(mén)教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門(mén)教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
您可能感興趣的文章:- thinkphp的URL路由規(guī)則與配置實(shí)例
- thinkphp5 URL和路由的功能詳解與實(shí)例
- ThinkPHP路由詳解
- thinkphp路由規(guī)則使用示例詳解和偽靜態(tài)功能實(shí)現(xiàn)(apache重寫(xiě))
- ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
- 改寫(xiě)ThinkPHP的U方法使其路由下分頁(yè)正常
- thinkPHP5.1框架路由::get、post請(qǐng)求簡(jiǎn)單用法示例
- thinkphp中U方法按路由規(guī)則生成url的方法
- ThinkPHP路由機(jī)制簡(jiǎn)介
- thinkPHP5框架路由常用知識(shí)點(diǎn)匯總
- thinkphp5框架路由原理與用法詳解