第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > Phalcon学习-model

Phalcon学习-model

时间:2023-04-14 21:00:50

相关推荐

Phalcon学习-model

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.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>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。