


YII は、url コンポーネントを使用してメソッドを美化し、管理します。yiiurl コンポーネント beautification_PHP チュートリアル
Jul 12, 2016 am 09:02 AMYIIはurlコンポーネントを使用して美化と管理を行い、yiiurlコンポーネントは美化します
この記事では、YIIがurlコンポーネントを使用して美化と管理を行う例について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
urlManager コンポーネント
yii の公式ドキュメントでは、これについて次のように説明されています:
urlSuffix このルールで使用される URL サフィックスは、デフォルトでは CurlManger::urlSuffix が使用され、値は null です。たとえば、これを .html に設定すると、URL を静的ページのように見せることができます。
caseSensitive 大文字と小文字を区別するかどうかに関係なく、CUrlManager::caseSensitive がデフォルトで使用され、値は null です。
defaultParams このルールで使用されるデフォルトの取得パラメータ。このルールを使用してリクエストを解析すると、このパラメータの値が $_GET パラメータに挿入されます。
matchValue URL を作成するとき、GET パラメーターが対応するサブパターンと一致するかどうか。デフォルトでは、CurlManager::matchValue が使用され、値は null です。
この属性が false の場合、ルートとパラメータ名が指定されたルールに一致すると、それに応じて URL が作成されることを意味します。
この属性が true の場合、指定されたパラメーター値は、対応するパラメーターのサブパターンと一致する必要があります。
注: このプロパティを true に設定すると、パフォーマンスが低下します。
いくつかの例を使用して URL の動作ルールを説明します。ルールに次の 3 つが含まれていると仮定しましょう:
リーリー$this->createUrl('post/list') を呼び出して /index.php/posts を生成します。最初のルールが適用されます。
$this->createUrl('post/read',array('id'=>100)) を呼び出して /index.php/post/100 を生成します。 2 番目のルールが適用されます。
$this->createUrl('post/read',array('year'=>2008,'title'=>'a example post')) を呼び出して /index.php/post/2008/a を生成します% 20サンプル% 20投稿。 3 番目のルールが適用されます。
$this->createUrl('post/read') を呼び出して /index.php/post/read を生成します。ルールは適用されませんのでご注意ください。
要約すると、createUrl を使用して URL を生成する場合、メソッドに渡されるルートと GET パラメーターを使用して、どの URL ルールが適用されるかを決定します。アソシエーション ルールの各パラメータが GET パラメータで見つかると、そのパラメータが createUrl に渡されます。ルート ルールもルート パラメータと一致すると、そのルールが URL の生成に使用されます。
createUrl に渡される GET パラメータが上記で必要なルールの 1 つである場合、他のパラメータはクエリ文字列に表示されます。たとえば、 $this->createUrl('post/read',array('id'=>100,'year'=>2008)) を呼び出すと、 /index.php/post/100 が取得されます。 ? 年 = 2008 年。これらの追加パラメータをパス情報の一部として表示するには、ルールに /* を追加する必要があります。 したがって、ルール post/<id:d+>/* を使用すると、URL /index.php/post/100/year/2008 を取得できます。
前述したように、URL ルールの他の用途は、リクエスト URL を解析することです。もちろん、これは URL 生成の逆のプロセスです。たとえば、ユーザーが /index.php/post/100 をリクエストすると、上記の例の 2 番目のルールが適用されて、ルート post/read と GET パラメータ array('id'=>100) ($ から入手可能) が解析されます。 _得る)。
ヒント: この URL は、createurl メソッドによって生成された相対アドレスです。絶対 URL を取得するには、接頭辞 yii: :app()->hostInfo を使用するか、createAbsoluteUrl を呼び出します。
注: 使用される URL ルールにより、アプリケーションのパフォーマンスが低下します。これは、要求された URL を解析するときに、[CUrlManager] が特定のルールが適用されるまで、各ルールを使用して URL との一致を試みるためです。したがって、トラフィックの多い Web サイト アプリケーションでは、使用する URL ルールを最小限に抑える必要があります。
test.com/vthot は test.com/vthot/
を生成したいと考えています
コードをコピーします コードは次のとおりです: 'urlSuffix'=>'/',
URL 形式を変更するには、createUrl が自動的に新しい形式に切り替わり、アプリケーションが新しい URL を正しく理解できるように、urlManager アプリケーション要素を構成する必要があります。
リーリー
ルールコード
コードをコピーします コードは次のとおりです: 'posts'=>'post/list',
アクションコード
コードをコピーします コードは次のとおりです: echo $this->createAbsoluteUrl('post/list');
http://localhost/test/index.php/post
例 2
ルールコード
コードをコピーします コードは次のとおりです: 'post/<id:d+>'=>array('post/show','urlSuffix'=>'.html'),
アクションコード
コードをコピーします コードは次のとおりです: echo $this->createAbsoluteUrl('post/show',array('id'=>998, 'name'=>'123'));
http://localhost/test/index.php/post/998.html?name=123
例 3
ルールコード:
コードをコピーします コードは次のとおりです:'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代码:
1 2 3 |
|
输出
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
1 2 3 4 5 |
|
2)public function actionUpdate($id) 这种不支持多主键,会检查一下到底GET里面有没有id,没有id就直接不允许访问
1 2 3 4 5 |
|
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
1 2 3 4 5 6 |
|
3.开启rewrite
简单的说,在main.php中简单设置urlManager,然后讲了3条规则,基本都覆盖到了。最后是隐藏index.php,请记住.htaccess位于index.php同级目录 ,而不是protected/目录。其他就简单了。
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
您可能感兴趣的文章:
- YiiFramework入门知识点总结(图文教程)
- Yii入门教程之目录结构、入口文件及路由设置
- Yii入门教程之Yii安装及hello world
- Yii PHP Framework实用入门教程(详细介绍)
- Yii查询生成器(Query Builder)用法实例教程
- Yii实现单用户博客系统文章详情页插入评论表单的方法
- Yii中CGridView实现批量删除的方法
- Yii快速入门经典教程

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Windows 10 旧バージョンコンポーネント DirectPlay のインストール方法

PHP 関数の紹介 - get_headers(): URL の応答ヘッダー情報を取得します

e からの NameResolutionError(self.host, self, e) の理由とその解決方法

Vueを使用してカレンダーコンポーネントを実装するにはどうすればよいですか?

Angular コンポーネントとその表示プロパティ: 非ブロックのデフォルト値について

Scrapy 最適化のヒント: 重複 URL のクロールを減らし、効率を向上させる方法
