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>



  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值