hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - PHP框架 - YII - 正文 请牢记本站网址www.sosophp.cn

yii框架怎样定义路由【yii框架教程】,yii

2019-12-12YII搜搜PHP网56°c
A+ A-

路由和URL生成

当一个YII运用入手下手处置惩罚一个请求的时刻,它首先要做的就是将请求的URL转化成一个路由。路由的作用是用于后续实例化相应的控制器和操纵,以便处置惩罚请求,全部处置惩罚历程便叫做路由。 (引荐进修:yii框架)

路由的逆历程叫做URL生成,是指用给定的路由和参数信息来生成一个URL。当运用生成的URL来发出请求的时刻,路由处置惩罚的历程又可以再次将其剖析复原出原始的路由和参数信息。

重要担任路由和URL生成事情的是URL管理器,其被注册成为运用组件。URL管理器供应要领parseRequest()来剖析请求,剖析出个中的路由和参数信息。

而要领 createUrl() 用于将给定的路由和参数信息,生成一个URL。经由过程在运用设置中设置URL管理器,可以让你的运用可以辨认恣意的URL花样,而不必修正已有程序代码。比方,你能运用以下的代码来生成一个URL。

use yii\helpers\Url;
// Url::to() calls UrlManager::createUrl() to create a URL
$url = Url::to(['post/view', 'id' => 100]);

取决于URL管理器的设置,如上代码生成的URL的模样看上去像下面如许的。假如这个URL后续被请求的话,它将被剖析成上面的原始路由和参数信息。

/index.php?r=post/view&id=100
/index.php/post/100
/posts/100

URL花样

URL管理器支撑两种URL花样:默许URL花样和美丽URL花样。默许URL花样运用一个查询参数r通报路由,其他参数依据一般体式格局放在URL中。

比方,URL /index.php?r=post/view&id=100 的路由为post/view和参数id为100。默许URL花样并不请求对URL管理器做任何设置。

美丽URL花样是运用分外的途径跟在进口脚本名以后,来展示路由和相干参数的。

比方,URL /index.php/post/100的分外途径为/post/100,其展示出的路由为post/view和参数id为100。

假如要运用这类URL花样,你须要依据现实需求,设想一个URL划定规矩集。你可以经由过程修正URL管理器中属性enablePrettyUrl的值,来到达在这两种URL花样之间切换的目标。

路由

路由的事情可以分为两步:

1.从请求中剖析出一个路由和相干参数;

2.依据路由生成相应的控制器操纵,来处置惩罚该请求。

当运用默许URL花样的时刻,剖析出路由很简单,只需猎取参数r的值便可;

当运用美丽URL花样的时刻,URL管理器会检测URL划定规矩集,从中找出与该请求婚配的路由。假如找不到划定规矩与之婚配,将会抛出非常yii\web\NotFoundHttpException。

一旦从请求中剖析出路由,接下来要做的就是建立与该路由相干的控制器操纵。路由被斜线切割成几个部份,比方,site/index会被切割成site和index。

每一个部份都是一个ID,它们或许指向模块、控制器或操纵。从路由的第一个部份入手下手,应该会实行以下几步来建立模块(假如有的话)、控制器和操纵:

1.设置运用主体为当前模块。

2.搜检当前模块的 yii\base\Module::controllerMap 是不是包括当前ID。假如是,会依据该表中的设置建立一个控制器对象,然后跳到步骤五实行该路由的后续片断。

3.搜检该 ID 是不是指向当前模块中 yii\base\Module::modules 属性里的模块列表中的一个模块。假如是,会依据该模块表中的设置建立一个模块对象,然后会以新建立的模块为环境,跳回步骤二剖析下一段路由。

4.将该 ID 视为控制器 ID,并建立控制器对象。用下个步骤剖析路由里剩下的片断。

5.控制器会在他的 yii\base\Controller::actions()里搜刮当前 ID。假如找获得,它会依据该映射表中的设置建立一个操纵对象;反之,控制器则会尝试建立一个与该 ID 相对应,由某个 action 要领所定义的行内操纵(inline action)。

上面这些步骤中,假如有任何毛病发作,运用都邑抛出非常yii\web\NotFoundHttpException,意味着路由处置惩罚失利。

以上就是yii框架怎样定义路由的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
yii框架怎样定义路由【yii框架教程】,yii

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签: