麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > PHP > 正文

YII如何使用url組件美化管理

2020-03-22 19:57:42
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了YII使用url組件美化管理的方法,結合實例形式較為詳細的分析了urlManager組件的具體功能及相關使用技巧,需要的朋友可以參考下

本文實例講述了YII使用url組件美化管理的方法。分享給大家供大家參考,具體如下:

urlManager組件

yii的官方文檔對此的解釋如下:

urlSuffix 此規則使用的url后綴,默認使用CurlManger::urlSuffix,值為null。例如可以將此設置為.html,讓url看起來“像”是一個靜態頁面。
caseSensitive 是否大小寫敏感,默認使用CUrlManager::caseSensitive,值為null。
defaultParams 該規則使用的默認get參數。當使用該規則來解析一個請求時,這個參數的值會被注入到$_GET參數中。
matchValue 當創建一個URL時,GET參數是否匹配相應的子模式。默認使用CurlManager::matchValue,值為null。

如果該屬性為 false,那么意味著當路由和參數名匹配給定的規則時,將以此來創建一個URL。

如果該屬性為true,那么給定的參數值夜必須匹配相應的參數子模式。

注意:將此屬性設置為true會降低性能。

我們使用一些例子來解釋網址工作規則。我們假設我們的規則包括如下三個:

array( posts = post/list , post/ id:/d+ = post/read , post/ year:/d{4} / title = post/read ,)

調用$this- createUrl( post/list )生成/index.php/posts。第一個規則適用。

調用$this- createUrl( post/read ,array( id = 100))生成/index.php/post/100。第二個規則適用。

調用$this- createUrl( post/read ,array( year = 2008, title = a sample post ))生成/index.php/post/2008/a%20sample%20post。第三個規則適用。

調用$this- createUrl( post/read )產生/index.php/post/read。請注意,沒有規則適用。

總之,當使用createUrl生成網址,路線和傳遞給該方法的GET參數被用來決定哪些網址規則適用。如果關聯規則中的每個參數可以在GET參數找到的,將被傳遞給createUrl ,如果路線的規則也匹配路線參數,規則將用來生成網址。

如果GET參數傳遞到createUrl是以上所要求的一項規則,其他參數將出現在查詢字符串。例如,如果我們調用$this- createUrl( post/read ,array( id = 100, year = 2008)) ,我們將獲得/index.php/post/100?year=2008。為了使這些額外參數出現在路徑信息的一部分,我們應該給規則附加/* 。 因此,該規則post/ id:/d+ /* ,我們可以獲取網址/index.php/post/100/year/2008 。

正如我們提到的,URL規則的其他用途是解析請求網址。當然,這是URL生成的一個逆過程。例如, 當用戶請求/index.php/post/100 ,上面例子的第二個規則將適用來解析路線post/read和GET參數array( id = 100) (可通過$_GET獲得) 。

提示:此網址通過createurl方法所產生的是一個相對地址。為了得到一個絕對的url ,我們可以用前綴yii: :app()- hostInfo ,或調用createAbsoluteUrl 。

注:使用的URL規則將降低應用的性能。這是因為當解析請求的URL ,[ CUrlManager ]嘗試使用每個規則來匹配它,直到某個規則可以適用。因此,高流量網站應用應盡量減少其使用的URL規則。

test.com/vthot 想生成 test.com/vthot/

 urlSuffix = / ,

要更改URL格式,我們應該配置urlManager應用元件,以便createUrl可以自動切換到新格式和應用程序可以正確理解新的網址:

 urlManager = array( urlFormat = path , showScriptName = false, urlSuffix = .html , rules = array( posts = post/list , post/ id:/d+ = array( post/show , urlSuffix = .html ), post/ id:/d+ / mid:/w+ = array( post/view , urlSuffix = .xml ),),

示例一

Rule代碼

 posts = post/list ,

Action代碼

echo $this- createAbsoluteUrl( post/list 

輸出

http://localhost/test/index.php/post

示例二

Rule代碼

 post/ id:/d+ = array( post/show , urlSuffix = .html ),

Action代碼

echo $this- createAbsoluteUrl( post/show ,array( id = 998, name = 123 

輸出

http://localhost/test/index.php/post/998.html?name=123

示例三

Rule代碼:

 post/ id:/d+ / mid:/w+ = array( post/view , urlSuffix = .xml ),

Action代碼

echo $this- createAbsoluteUrl( post/view ,array( id = 998, mid = tody 

輸出

http://localhost/test/index.php/post/998/tody.xml

示例四

Rule代碼

 http:// user:/w+ .vt.com/ _c:(look|seek) = array( _c /host , urlSuffix = .me ),

Action代碼:

echo $this- createAbsoluteUrl( look/host ,array( user = boy , mid = ny-01 echo echo $this- createAbsoluteUrl( looks/host ,array( user = boy , mid = ny-01 

輸出

http://boy.vt.com/look.me?mid=ny-01
http://localhost/test/index.php/looks/host/user/boy/mid/ny-01

1)controller/Update/id/23

public function actionUpdate(){ $id = Yii::app()- request- getQuery( id 經過處理的$_GET[ id ]//$id = Yii::app()- request- getPost( id 經過處理的$_POST[ id ]//$id = Yii::app()- request- getParam( id //CHttpRequest更多

2)public function actionUpdate($id) 這種不支持多主鍵,會檢查一下到底GET里面有沒有id,沒有id就直接不允許訪問

 sayhello/ name = post/hello , name是PostController actionHello($name)的參數 post/ alias:[-a-z]+ = post/view , domain/post/e文小寫 其中:前面的alias是PostController actionView($alias)的參數 (posts|archive)/ order:(DESC|ASC) = post/index , domain/posts/DESC或domain/posts/ASC (posts|archive) = post/index , domain/posts或domain/archive tos = array( website/page , defaultParams = array( alias = terms_of_service )),

When the URL is /tos, pass terms_of_service as the alias parameter value.

隱藏 index.php

還有一點,我們可以做進一步清理我們的網址,即在URL中藏匿index.php 入口腳本。這就要求我們配置Web服務器,以及urlManager應用程序元件。

1.add showScriptName= false

2.add project/.htaccess

RewriteEngine on# if a directory or a file exists, use it directlyRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d# otherwise forward it to index.phpRewriteRule . index.php

3.開啟rewrite

簡單的說,在main.php中簡單設置urlManager,然后講了3條規則,基本都覆蓋到了。最后是隱藏index.php,請記住.htaccess位于index.php同級目錄 ,而不是protected/目錄。其他就簡單了。

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !

相關推薦:

關于Yii基于數組和對象的Model查詢

Yii和CKEditor實現圖片上傳的功能

Yii2如何使用Bootbox插件實現自定義彈窗

以上就是YII如何使用url組件美化管理的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 老女人碰碰在线碰碰视频 | 国产91丝袜在线播放 | 国产精品久久久久久久久久东京 | 爱福利视频 | 精品国产一区二区三 | 爱操在线| 制服丝袜成人动漫 | 国产成人在线视频 | 欧美一级电影网站 | 四季久久免费一区二区三区四区 | 亚洲第一综合 | 亚洲免费观看视频 | 牛牛热这里只有精品 | 国产乱淫a∨片免费视频 | 亚洲欧美日韩免费 | 国产精品久久久久久久久久大牛 | 国产91极品| 性欧美视频在线观看 | 一级大片久久 | 国产在线1区 | 色交视频 | 黄色网址在线视频 | 久久久久一本一区二区青青蜜月 | 福利在线国产 | av性色全交蜜桃成熟时 | 免费人成年短视频在线观看网站 | av中文字幕免费在线观看 | 国产99视频在线观看 | 成人免费国产 | 午夜在线观看视频网站 | 操网 | 国产成人小视频在线观看 | 99麻豆久久久国产精品免费 | 精品国产亚洲人成在线 | 国产羞羞视频在线免费观看 | 精品一区二区电影 | 在线观看免费视频麻豆 | 成人免费看视频 | 福利在线小视频 | 欧美一级鲁丝片免费看 | av日韩一区二区三区 |