Model:
表与表之间的关系:
hasOne一对一( $fields, $referenceModel, $referencedFields : 当前表中的字段, 对应关系模型, 对应关系模型中表的字字段 )
hasMany一对多 ( $fields, $referenceModel, $referencedFields : 当前表中的字段, 对应关系模型, 对应关系模型中表的字字段 )
hasManyToMany 多对多
belongsTo多对一( 属于 ) ( $fields, $referenceModel, $referencedFields : 当前表中的字段, 对应关系模型, 对应关系模型中表的字字段 )
*********** 如项目中存在命名空间 则 要在对应的关系中添加alias参数array( 'alias' => 'namespace' )
<span style="color:#FF0000;">$this->hasMany( 'id', 'Mp\pri\models\RolesUsers' , 'roleid', array( 'alias' => 'rolesusers' ));$this->hasMany( 'id', 'Mp\pri\models\RolesMenus' , 'roleid', array( 'alias' => 'rolesmenus' ));</span>
Phalcon中设置允许数据动态更新:( 初始化的时候 )
$this->useDynamicUpdate( true );
Phalocn中设置软删除标记:( 初始化的时候 )
use Phalcon\Mvc\Model\Behavior\SoftDelete;$this->addBehavior( new SoftDelete(array('field'=> 'delsign','value'=> SystemEnums::DELSIGN_YES,)) );$res = Roles::findFirst( $where )->delete();//当判断是否删除成功与否if( empty( $res ) ){//delete error}else{//delete success}
项目多模块并存在有命名:(跨模块取数据)
因类存在命名空间问题如果保存成对象,在取出数据的时候因存在命名空间限制 会取不到session中的数据 ------ 解决方法将数据保存成数组存入session中
Phalcon 添加/更新数据:
$id = $this->request->getPost('id');if( isset( $id ) && FALSE != $id ){$where = array('conditions'=> 'delsign=:del: and id=:optid:','bind'=> array( 'del' => SystemEnums::DELSIGN_NO,'optid' => $id ),);$cache = Cache::findFirst( $where );$cache->delsign = SystemEnums::DELSIGN_YES;$cache->modtime = TimeUtils::getFullTime();$cache->title = 'Login';$cache->action = 'loadding';$cache->seconds = 100;$cache->module_name = 'appmgr';}else{//add$cache = new Cache();$cache->title = 'Roles';$cache->module_name = 'pri';$cache->controller = 'Roles';$cache->action= 'list';$cache->seconds= 20;$cache->comment= 'Add Test';$cache->createtime = TimeUtils::getFullTime();$cache->modtime= TimeUtils::getFullTime();$cache->delsign= SystemEnums::DELSIGN_NO;}if (! $cache->save()) {foreach ($cache->getMessages() as $message) {echo "Message: ", $message->getMessage();echo "Field: ", $message->getField();echo "Type: ", $message->getType();}}else {echo 'No Error';}exit;
采用PHQL方式更新数据:
$query = $this->modelsManager->createQuery( 'update \Mp\sys\Models\Cache set title =:tit:,modtime=:time: where id = :id:' );$res = $query->execute(array('tit' => $cache_name,'id'=> $id,'time'=> TimeUtils::getFullTime(),));
///
1.jquery 方法操作iframe父元素:
<span style="font-size:14px;">$("#rolesCtl",parent.document).find( 'button' ).trigger( 'click' );</span>
2.
<span style="font-size:14px;">$("#objid",document.frames('iframename').document)</span>
3.js在iframe子页面获取父页面元素代码如下:
<span style="font-size:14px;">window.parent.document.getElementByIdx_x("元素id");</span>
4.js在父页面获取iframe子页面元素:
<span style="font-size:14px;">window.frames["iframe_ID"].document.getElementByIdx_x("元素id");</span>
5.子类iframe内调用父类函数:
<span style="font-size:14px;">window.parent.func();</span>