thinkphp框架實(shí)現(xiàn)路由重定義簡(jiǎn)化url訪問(wèn)地址的方法分析
本文實(shí)例講述了thinkphp框架實(shí)現(xiàn)路由重定義簡(jiǎn)化url訪問(wèn)地址的方法。分享給大家供大家參考,具體如下:
如果按照正常訪問(wèn)的話,則需要輸入一長(zhǎng)串的url地址,這樣會(huì)顯得十分冗長(zhǎng),我可以可以通過(guò)對(duì)路由規(guī)則的重新定義簡(jiǎn)化url訪問(wèn)地址。
<?php
namespace app\index\controller;
class Index{
public function index(){
return '我是index';
}
public function hello($name='World'){
return 'Hello'.$name.'!';
}
}
?>
本來(lái)的訪問(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ù)的訪問(wèn)都會(huì)路由到index控制器的hello操作方法。
此時(shí)路徑可以寫(xiě)為:
localhost/tp/hello/Thinkphp
此時(shí)輸出結(jié)果為:
HelloThinkphp!
改變路由規(guī)則后若使用原來(lái)的路徑訪問(wèn)方法后,則會(huì)出現(xiàn)錯(cuò)誤。
但此時(shí)有一個(gè)問(wèn)題是,如果訪問(wèn)地址為:
localhost/tp/hello
話,會(huì)拋出 模板不存在的錯(cuò)誤,因?yàn)樵谠L問(wèn)時(shí),沒(méi)有傳參,而在定義路由規(guī)則時(shí),則帶有參數(shù)。
解決辦法是在修改路由規(guī)則為:
return [ // 添加路由規(guī)則 路由到 index控制器的hello操作方法' hello/[:name'] => 'index/index/hello', ];
使用[]把路由規(guī)則中的變量包起來(lái),就表示該變量為可選,接下來(lái)就可以正常訪問(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、Zend?Framework2、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框架路由原理與用法詳解
相關(guān)文章
php+iframe實(shí)現(xiàn)隱藏?zé)o刷新上傳文件
首先ajax不能上傳文件,這誤導(dǎo)了我有段時(shí)間,今晚睡不著就照著說(shuō)明做了個(gè)無(wú)刷新上傳文件2012-02-02
PHP 基于文件頭的文件類(lèi)型驗(yàn)證類(lèi)函數(shù)
在PHP開(kāi)發(fā)中,傳統(tǒng)的上傳文件類(lèi)型驗(yàn)證是基于文件擴(kuò)展名的驗(yàn)證方式(如pathinfo函數(shù)),很容易通過(guò)修改擴(kuò)展名來(lái)欺騙2012-05-05
基于Laravel5.4實(shí)現(xiàn)多字段登錄功能方法示例
最近在工作中遇到一個(gè)需求,需要實(shí)現(xiàn)多字段登錄的一個(gè)效果,就是可以使用手機(jī)或者郵箱任一種方式的登錄,現(xiàn)在將解決的過(guò)程分享出來(lái),所以這篇文章主要給大家介紹了基于Laravel5.4實(shí)現(xiàn)多字段登錄功能的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-08-08
YII2框架中操作數(shù)據(jù)庫(kù)的方式實(shí)例分析
這篇文章主要介紹了YII2框架中操作數(shù)據(jù)庫(kù)的方式,結(jié)合實(shí)例形式總結(jié)分析了YII2使用createCommand方式及AR(Active Record)方式操作數(shù)據(jù)庫(kù)相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-03-03
php實(shí)現(xiàn)頁(yè)面純靜態(tài)的實(shí)例代碼
本篇文章主要介紹了php實(shí)現(xiàn)頁(yè)面純靜態(tài)的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06

