Phalcon学习-model
Model:
表与表之间的关系:
hasOne 一对一( $fields, $referenceModel, $referencedFields : 当前表中的字段, 对应关系模型, 对应关系模型中表的字字段 )
hasMany 一对多 ( $fields, $referenceModel, $referencedFields : 当前表中的字段, 对应关系模型, 对应关系模型中表的字字段 )
hasManyToMany 多对多
belongsTo 多对一( 属于 ) ( $fields, $referenceModel, $referencedFields : 当前表中的字段, 对应关系模型, 对应关系模型中表的字字段 )
*********** 如项目中存在命名空间 则 要在对应的关系中添加alias参数 array( 'alias' => 'namespace' )
$this->hasMany( 'id', 'Mp\pri\models\RolesUsers' , 'roleid', array( 'alias' => 'rolesusers' ));
$this->hasMany( 'id', 'Mp\pri\models\RolesMenus' , 'roleid', array( 'alias' => 'rolesmenus' ));
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';
}
//add
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(),
));
Phalcon学习-model的更多相关文章
- backbone库学习-model
backbone库的结构: http://www.cnblogs.com/nuysoft/archive/2012/03/19/2404274.html 本文所有例子来自于http://blog.cs ...
- Django框架学习-Model进阶用法
Model进阶用法 回顾 访问外键 访问多对多关系 更改数据库结构 当处理数据库结构改变时,需要注意到几点: 增加字段 首先在开发环境中: 再到产品环境中: 删除字段 删除多对多字段 删除model ...
- Python学习---Model拾遗[2]180318
Model的字段及字段参数: Model字段: 数字 字符串(带正则的字段) 时间 文件 特殊字段:(一对一,一对多,多对多) Models.py ...
- Python学习---Model拾遗[1]180318
Model: 强大的数据库操作,弱小的数据验证 Form: 强大的数据验证 ModelForm: 强大的数据验证 + 弱小的数据库操作 Model拾遗 Model基本操作 1. 创建数据库表2. 修 ...
- phalcon(费尔康)框架学习笔记
phalcon(费尔康)框架学习笔记 http://www.qixing318.com/article/phalcon-framework-to-study-notes.html 目录结构 pha ...
- 解决phalcon model在插入或更新时会自动验证非空字段
在使用phalcon的insert和update功能时,因为数据库所有的字段设置的都是NOT NULL,而phalcon的model在插入或更新之前会自动判断字段是否需要必填,因此导致有空字段时无法存 ...
- phalcon:model 事件与事件管理器
事件与事件管理器(Events and Events Manager)¶ Models allow you to implement events that will be thrown when p ...
- phalcon: 按年分表的model怎么建?table2017,table2018...相同名的分表模型怎么建
phalcon: 按年分表的model怎么建?table2017,table2018...相同名的分表模型怎么建 场景:当前有一张表:Ntime,因为表太大了,考虑要分表: Ntime2017 Nti ...
- phalcon框架安装
Phalcon学习笔记 - 安装 原创 2014年10月23日 12:20:33 标签: phalcon / phalcon安装 5014 如何学习一个新的框架 1 明白工作原理 2 知道核心思想 ...
随机推荐
- 高效开发 Android App 的 10 个建议
假如要Google Play上做一个最失败的案例,那最好的秘诀就是界面奇慢无比.耗电.耗内存.接下来就会得到用户的消极评论,最后名声也就臭了.即使你的应用设计精良.创意无限也没用. 耗电或者内存占用等 ...
- if you are not making someone else's life better, then you are wasting your time.– Will Smith如果你不能给别人的生活带来改善,那么你就是在浪费你的宝贵时间。 --威尔 史密斯(程序员,你做的东西...)
if you are not making someone else's life better, then you are wasting your time. – Will Smith 如果你不能 ...
- JMeter学习笔记--JMeter监听器
监听器(Listeners)是一种展示采样结果的测试元件,采样结果可以通过树.表格.图片加以展示,或者简单地写入某个结果文件之中. 注:不同的监听器通过不同的方式展示服务器响应信息,但它们都将同样的原 ...
- bug list
机型: Samsung Galaxy S GT-I9000 版本: 2.2.1bug: Couldn't create directory for SharedPreferences file xxx ...
- Python 多进程 一分钟下载二百张图片 是什么样子的体验
需要爬取国内某个网站,但是这个网站封ip,没办法,只能用代理了,然后构建自己的代理池,代理池维护了20条进程, 所用的网络是20M带宽,实际的网速能达到2.5M,考虑到其他原因,网速未必能达到那么多. ...
- 手机端上传图片及java后台接收和ajaxForm提交
有很多微信开发的项目在手机端需要传图片,但是又不想调用微信的上传图片接口,于是采取了如下做法: 使用ajaxForm提交文件所需js:jquery.form.js 页面代码: <%@ page ...
- shell教程一:字符串操作
一:Linux shell字符串截取与拼接 假设有变量 var=http://www.linuxidc.com/123.htm 1 # 号截取,删除左边字符,保留右边字符. echo ${var#* ...
- 如何在 Visual Studio 2013 中调试.NET Framework 4.5.1 代码
版本需求如标题,在 工具->选项->调试->常规 中,更改以下设置: 禁用:启用“仅我的代码”.逐过程执行属性和运算符(仅限托管).要求源文件与原始版本完全匹配 启用:启用 .NET ...
- WIN10中运行ASP出错
一个项目用ASP做的,想在WIN中IIS建立网站部署起来,开始怎么弄都不行,运行总是出现那句英文,后来才知道要在IIS中的网站的ASP选项中的调试属性中把发送错误到到浏览器打开,这样才能发现程序报错, ...
- ssh-copy-id 安全地复制公钥到远程服务器上
[root@NB .ssh]# ssh-copy-id -i id_rsa.pub " -p22 root@150.57.38.226" root@150.57.38.226's ...