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
- {
- $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. jquery在父页面获取iframe子页面的元素:
- <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>