Rumah pembangunan bahagian belakang tutorial php yii yii框架中的Url生产问题小结

yii yii框架中的Url生产问题小结

Jul 29, 2016 am 08:47 AM
yii

复制代码 代码如下:





假定设定了UrlManager的配置为Path模式,用yii默认的配置:

复制代码 代码如下:


'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'/'=>'/view',
'//'=>'/',
'/'=>'/',
),
),


上面两行代码会生产什么样的链接地址?
http:///user/register //错误链接
http:///index.php/user/register //正确链接
第一个链接是错误的,浏览器会返回404错误。第二个链接会访问UserController的Register方法。区别就在于第二个链接在生成的时候我们传入的参数是一个array数组,而第一个方法是一个简单字符串。Yii在处理Url的时候,遇到简单字符串会直接使用该字符串作为最终的Url,而当遇到数组的时候会调用Controller的CreateUrl来生成Url.
说到简单字符串,这两个链接中其实有一个非常本质的区别。虽然同样都是字符串'user/register',但是在第一个字符串中就代表一个13个字符的相对路径,而第二个链接中则代表UserController的registerAction,是有着特俗意义的。
附上Yii处理Url的方法NormalizeUrl的源代码:

复制代码 代码如下:


/**
* Normalizes the input parameter to be a valid URL.
*
* If the input parameter is an empty string, the currently requested URL will be returned.
*
* If the input parameter is a non-empty string, it is treated as a valid URL and will
* be returned without any change.
*
* If the input parameter is an array, it is treated as a controller route and a list of
* GET parameters, and the {@link CController::createUrl} method will be invoked to
* create a URL. In this case, the first array element refers to the controller route,
* and the rest key-value pairs refer to the additional GET parameters for the URL.
* For example, array('post/list', 'page'=>3) may be used to generate the URL
* /index.php?r=post/list&page=3.
*
* @param mixed $url the parameter to be used to generate a valid URL
* @return string the normalized URL
*/
public static function normalizeUrl($url)
{
if(is_array($url))
{
if(isset($url[0]))
{
if(($c=Yii::app()->getController())!==null)
$url=$c->createUrl($url[0],array_splice($url,1));
else
$url=Yii::app()->createUrl($url[0],array_splice($url,1));
}
else
$url='';
}
return $url==='' ? Yii::app()->getRequest()->getUrl() : $url;
}

以上就介绍了yii yii框架中的Url生产问题小结,包括了yii方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menggunakan rangka kerja Yii3 dalam php? Bagaimana untuk menggunakan rangka kerja Yii3 dalam php? May 31, 2023 pm 10:42 PM

Bagaimana untuk menggunakan rangka kerja Yii3 dalam php?

Cara menggunakan rangka kerja PHP Yii untuk membangunkan sistem sandaran awan yang sangat tersedia Cara menggunakan rangka kerja PHP Yii untuk membangunkan sistem sandaran awan yang sangat tersedia Jun 27, 2023 am 09:04 AM

Cara menggunakan rangka kerja PHP Yii untuk membangunkan sistem sandaran awan yang sangat tersedia

Symfony vs Yii2: Rangka kerja manakah yang lebih baik untuk membangunkan aplikasi web berskala besar? Symfony vs Yii2: Rangka kerja manakah yang lebih baik untuk membangunkan aplikasi web berskala besar? Jun 19, 2023 am 10:57 AM

Symfony vs Yii2: Rangka kerja manakah yang lebih baik untuk membangunkan aplikasi web berskala besar?

Yii2 vs Phalcon: Rangka kerja manakah yang lebih baik untuk membangunkan aplikasi pemaparan grafik? Yii2 vs Phalcon: Rangka kerja manakah yang lebih baik untuk membangunkan aplikasi pemaparan grafik? Jun 19, 2023 am 08:09 AM

Yii2 vs Phalcon: Rangka kerja manakah yang lebih baik untuk membangunkan aplikasi pemaparan grafik?

Pertanyaan data dalam rangka kerja Yii: capai data dengan cekap Pertanyaan data dalam rangka kerja Yii: capai data dengan cekap Jun 21, 2023 am 11:22 AM

Pertanyaan data dalam rangka kerja Yii: capai data dengan cekap

yii如何将对象转化为数组或直接输出为json格式 yii如何将对象转化为数组或直接输出为json格式 Jan 08, 2021 am 10:13 AM

yii如何将对象转化为数组或直接输出为json格式

Panduan Pengaturcaraan Yii2: Kaedah Menjalankan Perkhidmatan Cron Panduan Pengaturcaraan Yii2: Kaedah Menjalankan Perkhidmatan Cron Sep 01, 2023 pm 11:21 PM

Panduan Pengaturcaraan Yii2: Kaedah Menjalankan Perkhidmatan Cron

Pembina borang dalam rangka kerja Yii: membina bentuk kompleks Pembina borang dalam rangka kerja Yii: membina bentuk kompleks Jun 21, 2023 am 10:09 AM

Pembina borang dalam rangka kerja Yii: membina bentuk kompleks

See all articles