Heim >Backend-Entwicklung >PHP-Tutorial >YII框架中控制器中的actions函数有什么用?难道只是用来做验证么?
他和比如actionIndex等这些方法有好什么区别呢?我在Yii的视频教程上面看见的是用来做验证码
他和比如actionIndex等这些方法有好什么区别呢?我在Yii的视频教程上面看见的是用来做验证码
比如通过一个文件来定义action,而不是在controller中定义
<code class="lang-php">function actions(){ return array( 'edit'=>'application.controllers.post.UpdateAction', ); } </code>
例如:
官方的例子:SiteController 中
<code>public function actions() { return array( // captcha action renders the CAPTCHA image displayed on the contact page 'captcha'=>array( 'class'=>'CCaptchaAction', 'backColor'=>0xFFFFFF, ), // page action renders "static" pages stored under 'protected/views/site/pages' // They can be accessed via: index.php?r=site/page&view=FileName 'page'=>array( 'class'=>'CViewAction', ), 'search'=>array( 'class'=>'ext.esearch.SearchAction', 'model'=>'Post', 'attributes'=>array('title', 'tags', 'content'), ), ); } </code>
就可以直接通过 xxx?r=site/captcha 访问到验证码了!
公用操作,AController和BController都有一个edit方法,就可以放到actions
谢邀!:)
顾名思义,action
毫无疑问就是用来描述控制器的动作,一般都有 actionIndex
,即默认动作。
举例:
<code>class PageController extends Controller { public function actionIndex() { echo 'default action'; } } </code>
当用户请求时,便会触发默认的动作,输出 default action
。
当然你也可以定义特定的 action
,例如:
<code>class PageController extends Controller { public function actionIndex() { echo 'default action'; } public function actionSelf() { echo 'new action'; } } </code>
此时,当用户请求 self
动作时,就会触发 输出 new action
。
当然你会发现还有 CAction
的类,这是使用 action
的另外一种方法:
<code>class SelfAction extends CAction { public function run() { echo 'new action'; } } class PageController extends Controller { public function actions() { return array( 'self' => 'application.controllers.actions.SelfAction', ); } } </code>
建议题主在正式开发前,先对 YII
有个大致的了解,可以阅读这个文档:《Yii 权威指南》
当你要做一个单页, 比如“关于我们”、“联系我们”,可以全部写在 actions 里。
用来复用action用的