Yii::app()->request->url;
ctype_开始的几个函数,用于检查字任串是不是符合要求,代替了简单的正则表达式
CController中的setPageState可以保存同一页中的POST的表单状态
如何通过BEhavior修改CActiveRecord?
写类文件继承自
class LLog extends CActiveRecordBehavior{ public function beforeDelete($event){ $model = get_class($this->Owner); //做要做的事,比如日志或修改模型字段内容 } }
然后修改模型文件
public function behaviors() { return array( // Classname => path to Class 'LLog'=>'application.behavior.LLog', ); }
如何在应用程序处理请求之前执行一段操作?
在main.php中配置
复制代码 代码如下:
'onBeginRequest' => 'function'
当然这个function方法要存在
也可以写在放口文件index.php中,代码改成如下
$app = Yii::createWebApplication($config); $app->onbeginRequest = 'begin'; $app->run(); function begin(){ echo 'yyyyydddyyyyyy'; }
为什么在CActiveRecordBehavior中用
beforesave就可以代表了事件onBeforeSave
注意基为中最上边的events方法中返回的对应关系
复制代码 代码如下:
'onBeforeSave'=>'beforeSave'
在调用attacth(CBehavior中)的时候,
复制代码 代码如下:
$owner->attachEventHandler($event,array($this,$handler));
就指定了事件onBeforeSave的处理函数是用本类中的beforeSave
YII中的CComponent,CEvent与Behavior及CActiveRecordBehavior个人理解
这一块教程少,今天个人理解了下,写了个小例子,有助于理解
完成如下功能,一个JTool类,继承CComponent,当其长度改变时,调用事件,输出"change me".
JTool.php在protected/components 下
<?php class JTool extends CComponent{ private $_width; public function getWidth(){ return $this->_width ? $this->_width : 1; } public function setWidth($width){ if($this->hasEventHandler('onChange')){ $this->onChange(new CEvent()); } $this->_width = $width; } public function onChange($event){ $this->raiseEvent('onChange', $event); } }
OK,功能已经实现了,找个控制器,执行