码迷,mamicode.com
首页 > 其他好文 > 详细

phalcon——model(模型)

时间:2015-03-02 18:29:19      阅读:817      评论:0      收藏:0      [点我收藏+]

标签:

Model:

表与表之间的关系:

hasOne                         一对一( $fields, $referenceModel, $referencedFields : 当前表中的字段, 对应关系模型, 对应关系模型中表的字字段 )

hasMany                       一对多 ( $fields, $referenceModel, $referencedFields : 当前表中的字段, 对应关系模型, 对应关系模型中表的字字段 )

hasManyToMany        多对多

belongsTo                    多对一( 属于 ) ( $fields, $referenceModel, $referencedFields : 当前表中的字段, 对应关系模型, 对应关系模型中表的字字段 )

*********** 如项目中存在命名空间 则 要在对应的关系中添加alias参数  array( ‘alias‘ => ‘namespace‘ )

  1. <span style="color:#FF0000;">$this->hasMany( ‘id‘,  ‘Mp\pri\models\RolesUsers‘ , ‘roleid‘, array( ‘alias‘ => ‘rolesusers‘ ));  
  2. $this->hasMany( ‘id‘,  ‘Mp\pri\models\RolesMenus‘ , ‘roleid‘, array( ‘alias‘ => ‘rolesmenus‘ ));</span>  

Phalcon中设置允许数据动态更新:( 初始化的时候 )

  1. $this->useDynamicUpdate( true );  

Phalocn中设置软删除标记:( 初始化的时候 )

  1. use Phalcon\Mvc\Model\Behavior\SoftDelete;  
  2. $this->addBehavior( new SoftDelete(  
  3.     array(  
  4.         ‘field‘ => ‘delsign‘,  
  5.         ‘value‘ => SystemEnums::DELSIGN_YES,       
  6.     )     
  7. ) );  
  8. $res = Roles::findFirst( $where )->delete();  
  9. //当判断是否删除成功与否  
  10. if( empty( $res ) )  
  11. {//delete error  
  12.   
  13. }  
  14. else  
  15. {//delete success  
  16.   
  17. }  

项目多模块并存在有命名:(跨模块取数据)

 因类存在命名空间问题 如果保存成对象, 在取出数据的时候因存在命名空间限制 会取不到session中的数据 ------ 解决方法 将数据保存成数组存入session中

Phalcon 添加/更新数据:

  1. $id = $this->request->getPost(‘id‘);  
  2.          
  3.        if( isset( $id ) && FALSE != $id )  
  4.        {  
  5.            $where = array(  
  6.                ‘conditions‘     => ‘delsign=:del: and id=:optid:‘,  
  7.                ‘bind‘          => array( ‘del‘ => SystemEnums::DELSIGN_NO,‘optid‘ => $id ),  
  8.            );  
  9.            $cache = Cache::findFirst( $where );  
  10.            $cache->delsign = SystemEnums::DELSIGN_YES;  
  11.            $cache->modtime = TimeUtils::getFullTime();  
  12.            $cache->title = ‘Login‘;  
  13.            $cache->action = ‘loadding‘;  
  14.            $cache->seconds = 100;  
  15.            $cache->module_name = ‘appmgr‘;  
  16.        }  
  17.        else  
  18.        {//add  
  19.            $cache = new Cache();  
  20.            $cache->title       = ‘Roles‘;  
  21.            $cache->module_name = ‘pri‘;  
  22.            $cache->controller  = ‘Roles‘;  
  23.            $cache->action      = ‘list‘;  
  24.            $cache->seconds     = 20;  
  25.            $cache->comment     = ‘Add Test‘;  
  26.            $cache->createtime  = TimeUtils::getFullTime();  
  27.            $cache->modtime     = TimeUtils::getFullTime();  
  28.            $cache->delsign     = SystemEnums::DELSIGN_NO;  
  29.        }  
  30.        if (! $cache->save()) {  
  31.            foreach ($cache->getMessages() as $message) {  
  32.                echo "Message: ", $message->getMessage();  
  33.                echo "Field: ", $message->getField();  
  34.                echo "Type: ", $message->getType();  
  35.            }  
  36.        }  
  37.        else   
  38.        {  
  39.            echo ‘No Error‘;  
  40.              
  41.        }  
  42.        exit;  

采用PHQL方式更新数据:

  1. $query = $this->modelsManager->createQuery( ‘update \Mp\sys\Models\Cache set title =:tit:,modtime=:time: where id = :id:‘ );  
  2.               
  3.             $res = $query->execute(array(  
  4.                 ‘tit‘ => $cache_name,  
  5.                 ‘id‘    => $id,  
  6.                 ‘time‘  => TimeUtils::getFullTime(),  
  7.             ));  

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

1.jquery 方法操作iframe父元素:

[javascript] view plaincopyprint?技术分享技术分享
  1. <span style="font-size:14px;">$("#rolesCtl",parent.document).find( ‘button‘ ).trigger( ‘click‘ );</span>  

2. jquery在父页面获取iframe子页面的元素:

[javascript] view plaincopyprint?技术分享技术分享
  1. <span style="font-size:14px;">$("#objid",document.frames(‘iframename‘).document)</span>  

3.js在iframe子页面获取父页面元素代码如下:

[javascript] view plaincopyprint?技术分享技术分享
  1. <span style="font-size:14px;">window.parent.document.getElementByIdx_x("元素id");</span>  

4.js在父页面获取iframe子页面元素:

[javascript] view plaincopyprint?技术分享技术分享
  1. <span style="font-size:14px;">window.frames["iframe_ID"].document.getElementByIdx_x("元素id");</span>  

5.子类iframe内调用父类函数:

[javascript] view plaincopyprint?技术分享技术分享
    1. <span style="font-size:14px;">window.parent.func();</span>  

phalcon——model(模型)

标签:

原文地址:http://www.cnblogs.com/helinfeng/p/4309304.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!