本文整理汇总了PHP中CActiveRecordBehavior类的典型用法代码示例。如果您正苦于以下问题:PHP CActiveRecordBehavior类的具体用法?PHP CActiveRecordBehavior怎么用?PHP CActiveRecordBehavior使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CActiveRecordBehavior类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: beforeSave
/**
* Triggered before the model saves, this is where the slug attribute is actually set
* @see CActiveRecordBehavior::beforeSave()
*/
public function beforeSave($event)
{
if ($this->owner->isNewRecord || $this->owner->{$this->slugAttribute} == "") {
$this->owner->{$this->slugAttribute} = $this->createSlug();
}
return parent::beforeSave($event);
}
示例2: attach
/**
* @param CActiveRecord $owner
*/
public function attach($owner)
{
$validator = new yupe\components\validators\NumberValidator();
$validator->attributes = array($this->priceAttribute, $this->priceEurAttribute, $this->priceOldAttribute);
$owner->getValidatorList()->add($validator);
parent::attach($owner);
}
示例3: attach
/**
* @param CActiveRecord $owner
*/
public function attach($owner)
{
$validator = new CSafeValidator();
$validator->attributes = array($this->attribute);
$owner->getValidatorList()->add($validator);
parent::attach($owner);
}
示例4: afterValidate
public function afterValidate($event)
{
parent::afterValidate($event);
if ($this->checkScenario() && !$this->owner->hasErrors()) {
$modelName = get_class($this->owner);
if (isset($_FILES[$modelName]['name'][$this->attributeName])) {
$files = array();
foreach ($_FILES[$modelName] as $k => $v) {
$files[$k] = $v[$this->attributeName];
}
// Сохраняю
if ($files) {
Yii::import('ext.ImageUpload.ImageUpload');
$handle = new ImageUpload($files);
if ($handle->uploaded) {
$this->saveImage($handle);
// Удаляю старую фотку
if ($this->owner->scenario == 'update') {
$this->deleteImage();
}
$handle->clean();
}
unset($handle, $files);
}
}
}
}
示例5: attach
public function attach($owner)
{
parent::attach($owner);
$this->_hasCreateDate = $this->getOwner()->hasAttribute('createDate');
$this->_hasLastUpdated = $this->getOwner()->hasAttribute('lastUpdated');
$this->_hasLastActivity = $this->getOwner()->hasAttribute('lastActivity');
}
示例6: beforeSave
public function beforeSave($event)
{
if ($this->_value !== NULL) {
$this->getOwner()->setAttribute($this->getBackupAttribute(), $this->_value);
}
return parent::beforeSave($event);
}
示例7: attach
/**
* @param CComponent $owner
*/
public function attach($owner)
{
$owner->attachEventHandler('onProductAdded', array($this, 'productAddedEvent'));
$owner->attachEventHandler('onProductDeleted', array($this, 'productDeletedEvent'));
$owner->attachEventHandler('onProductQuantityChanged', array($this, 'onProductQuantityChanged'));
parent::attach($owner);
}
示例8: attach
/**
* Attaches dynamic relations.
*
* @param CActiveRecord $owner owner
*
* @see CBehavior::attach()
*/
public function attach($owner)
{
parent::attach($owner);
$ownerClassName = get_class($owner);
$metaData = $owner->getMetaData();
$metaData->addRelation('parent', array(CActiveRecord::BELONGS_TO, $ownerClassName, $this->parentIdColumn));
}
示例9: attach
/**
* (non-PHPdoc).
*
* @see CBehavior::attach()
*/
public function attach($owner)
{
parent::attach($owner);
if (!isset($this->defaultCounter)) {
$this->defaultCounter = $this->counters[0];
}
}
示例10: afterSave
public function afterSave($event)
{
parent::afterSave($event);
// do not auto-create meta data information for meta data table itself (recursion).
if ($this->metaDataRelation == '_self_') {
return true;
}
// create new meta data record or just update modifiedBy/At columns
if ($this->resolveMetaDataModel() === null) {
$metaClassName = $this->owner->getActiveRelation($this->metaDataRelation)->className;
$metaModel = new $metaClassName();
$metaModel->id = $this->owner->id;
$metaModel->status = self::STATUS_ACTIVE;
$metaModel->language = Yii::app()->language;
$metaModel->owner = Yii::app()->user->id;
$primaryRole = key(Yii::app()->authManager->getRoles(Yii::app()->user->id));
$metaModel->checkAccessDelete = $primaryRole;
$metaModel->createdAt = date('Y-m-d H:i:s');
$metaModel->createdBy = Yii::app()->user->id;
$metaModel->model = get_class($this->owner);
} else {
$metaModel = $this->resolveMetaDataModel();
$metaModel->modifiedAt = date('Y-m-d H:i:s');
$metaModel->modifiedBy = Yii::app()->user->id;
}
$metaModel->save();
return true;
}
示例11: afterSave
public function afterSave($event)
{
$relations = $this->getRelations();
foreach ($relations as $relation) {
if ($relation['type'] == CActiveRecord::MANY_MANY) {
$forAdd = array_diff($relation['value'], $relation['oldValue']);
foreach ($forAdd as $id) {
if ($id) {
$sql = 'INSERT INTO `' . $relation['m2mTable'] . '`
(`' . $relation['m2mThisField'] . '`, `' . $relation['m2mForeignField'] . '`)
VALUES (:this_field, :foreign_field)';
Yii::app()->getDb()->createCommand($sql)->bindValues(array('this_field' => $this->getOwner()->id, ':foreign_field' => $id))->execute();
}
}
$forRemove = array_diff($relation['oldValue'], $relation['value']);
foreach ($forRemove as $id) {
if ($id) {
$sql = 'DELETE IGNORE FROM `' . $relation['m2mTable'] . '`
WHERE `' . $relation['m2mThisField'] . '` = :this_field
AND `' . $relation['m2mForeignField'] . '` = :foreign_field';
Yii::app()->getDb()->createCommand($sql)->bindValues(array('this_field' => $this->getOwner()->id, ':foreign_field' => $id))->execute();
}
}
}
}
//Yii::app()->end();
parent::afterSave($event);
return true;
}
示例12: beforeDelete
public function beforeDelete($event)
{
foreach ($this->findAllAttaches() as $attach) {
$attach->delete();
}
return parent::beforeDelete($event);
}
示例13: attach
/**
* Attaches the behavior object to the model.
*
* @param string $owner The component to which the behavior will be applied
*/
public function attach($owner)
{
parent::attach($owner);
if ($this->getModule() === null) {
// Resolve the module
if (isset($this->baseRoute)) {
// Try to extract it from $baseRoute (old custom modules)
$this->module = preg_replace('/\\/.*/', '', preg_replace('/^\\//', '', $this->baseRoute));
} else {
// Assume the model name is the same as the module/controller
// (also true of custom modules)
$this->module = strtolower(get_class($this->owner));
}
}
if (!isset($this->baseRoute)) {
$this->baseRoute = '/' . $this->module;
}
if (!isset($this->viewRoute)) {
$this->viewRoute = $this->baseRoute;
}
if (Yii::app()->params->isMobileApp) {
$this->viewRoute .= '/mobileView';
}
if (!isset($this->autoCompleteSource)) {
$this->autoCompleteSource = $this->baseRoute . '/getItems?modelType=' . get_class($this->owner);
}
}
示例14: detach
public function detach($owner)
{
parent::detach($owner);
$this->objectId = null;
$this->objectType = null;
$this->_oaa = null;
}
示例15: attach
public function attach($owner)
{
parent::attach($owner);
$this->_model = $owner;
$this->addRelations();
$this->addSafeAttributes();
}