2、dbschema

dbschema 字段属性

‘type’ => ‘int unsigned’, //字段类型

‘extra’ => ‘auto_increment’,//定义自增

‘pkey’ => true,//主键

‘required’ => true,//该字段为必须

创建唯一性字段?

'index' => array(
'user' => array('columns' => array('email'),'prefix' => 'UNIQUE'),
),//唯一字段设置

相关文档:http://ec-os.net/advance/base/mvc/m/dbschema.html#id2

dbschema type类型

dbschema相关type类型:

money 'price' decimal(20,3) default 0.00

email 'email' varchar(255)

time 'create_time' int(10) unsigned

cdate 'create_time' int(10) unsigned

password 'passwd' varchar(32)

枚举类型、bn、html、bool、intbool、region
Tinybool、number、float、gender、ipaddr、
Serialize、last_modify、mysql字段类型

3、model的调用

1、model概述

如何创建自己的model

model的命名规则

{$app_id}_mdl_{$mod_path}

model存放位置

app/{$app_id}/model/{mod_path}/

1.获取model对象

. 获取本app 的model
$model = $this->app>model('$model');

.获取其他app 的model
$model = app::get('b2c')->model($model);

.更通用的方法kernel::single()
$model = kernel::single(‘b2c_mdl_$model');

2. 在model中获取数据库操作对象
.通过调用基类成员变量$db
$result = $this->db->select($sql); //注意model要继承base_db_model或则dbeav_model

.通过kernel::database()直接获取数据库操作对象
$result = kernel::database()->select($sql);
3、model常用方法

ECOS model 常用方法

. exec (query )执行sql语句

. select 对数据库表进行select

. selectrow 返回单行数据

. selectlimit 与select函数差不多, 区别在于, 用selectlimit不必手拼limit

. getRows 通过mysql结果集连接标识, 获取单/多行数据

. quote 对准备入数据库表字段的数据做安全转义处理

. lastinsertid 获取最后插入数据库的条目的id号

. affect_row 获取之前mysql语句操作所影响的行数
ECOS model 常用方法二

. count 通过过滤器,取得对应表的数据行数

. getList 获取model对应表的单/多行数据, 可根据需要重载

. dump 获取model 对应表单行数据

. insert 插入单行数据, 会根据dbschema的type做转义处理

. save 保存数据,如果数据存在则做更新处理

. updata 根据更新数据

. delete 根据条件删除数据

. beginTransaction,commit ,rollBack 事物处理

1. 基本的filter用法
$filter = array('sex' => 'male','age' => array (23, 45, 54));
$this->delete($filter);

2.filter 扩展用法(model 需要集成dbeav_model )
$FilterArray= array('than'=>' > '.$var,
'lthan'=>' < '.$var, 注意:在$filter中可以写自己的sql 条件
'nequal'=>' = \''.$var.'\'',
'noequal'=>' <> \''.$var.'\'', $filter = array(
'tequal'=>' = \''.$var.'\'', 'filter_sql'=>' sex=male and age=23',
'sthan'=>' <= '.$var, );
'bthan'=>' >= '.$var,
'has'=>' like \'%'.$var.'%\'',
'head'=>' like \''.$var.'%\'',
'foot'=>' like \'%'.$var.'\'',
'nohas'=>' not like \'%'.$var.'%\'',
'between'=>' {field}>='.$var[0].' and '.' {field}<'.$var[1],
'in' =>" in ('".implode("','",(array)$var)."') ",
'notin' =>" not in ('".implode("','",(array)$var)."') ",
);

三、desktop

1、控制器主要方法

. ECOS 中autoload机制(class 命名规则)

1、controller命名规则

2、model命名规则

3、lib中的命名规则

. ECOS中实例化类的方法

1、app::get('$app')->model('$model');app::get('$app')->render();
//主要用来调用model,base_render类

2、通用方法kernel::single(„$class‟„);//主要用来调用lib中的类

. 后台controller常用方法

1、显示view页面:
• page("xxx.html‟) ;
• singlepage('xxx.html');
• display('xxx.html');

2、向view页面分配数据 :
• pagedata();

3、拼接url地址
• gen_url();

• 后台的控制器必须继承desktop_controller,继承后才有finder方法,下面介绍下

finder方法的几个参数:
 第一个参数是字符串,(例如:ecbook_mdl_item ),是model里的class名,
它决定了finder列表的数据源,默认情况下是ecbook_mdl_item类里的getList方
法返回的数据

 第二个参数是数组,这个数组内涵相当丰富,解释如下:

use_buildin_recycle: 是否显示删除操作
use_buildin_export: 是否显示导出操作
use_buildin_import: 是否显示导入操作
base_filter:对tab数据进行过滤筛选,参照上面格式
use_buildin_filter: 是否使用高级筛选
use_buildin_refresh: 是否显示刷新操作(高级筛选旁)
use_buildin_setcol: 是否显示列配置
use_buildin_selectrow: 是否显示每条记录前的复选按钮
• finder上的自定义标签

后台tab标签显示如右:

需要在调用了finder 的控制器里定义_views方法,_views方法的返回值格式如下:

配置参数:
label: tab的标题文字
optional: 此tab是否可选
filter: 此tab的过滤条件
addon: 此过滤条件下有多少条记录
href: 此tab的链接地址

Ecsotre 参考的更多相关文章

  1. Hyper-v 安装CentOS 7 (其他虚拟机一样参考)

    平台之大势何人能挡? 带着你的Net飞奔吧!http://www.cnblogs.com/dunitian/p/4822808.html hyper-v安装很多人没弄过,我这里介绍一下.(其他虚拟机参 ...

  2. ifconfig: command not found(CentOS专版,其他的可以参考)

    ifconfig: command not found 查看path配置(echo相当于c中的printf,C#中的Console.WriteLine) echo $PATH 解决方案1:先看看是不是 ...

  3. 参考bootstrap中的popover.js的css画消息弹框

    前段时间小颖的大学同学给小颖发了一张截图,图片类似下面这张图: 小颖当时大概的给她说了下,其实小颖也不知道上面那个三角形怎么画嘻嘻,给她说了DOM结构,具体的css让她自己百度,今天小颖自己参考boo ...

  4. Oracle安装部署,版本升级,应用补丁快速参考

    一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...

  5. Angularjs参考框架地址

    1.Table(Grid)参考地址 https://github.com/samu/angular-table https://github.com/daniel-nagy/md-data-table ...

  6. iOS开发之三个Button实现图片无限轮播(参考手机淘宝,Swift版)

    这两天使用Reveal工具查看"手机淘宝"App的UI层次时,发现其图片轮播使用了三个UIButton的复用来实现的图片循环无缝滚动.于是乎就有了今天这篇博客,看到“手机淘宝”这个 ...

  7. SQL 性能调优中可参考的几类Lock Wait

    在我们的系统出现性能问题时,往往避不开调查各种类型 Lock Wait,如Row Lock Wait.Page Lock Wait.Page IO Latch Wait等.从中找出可能的异常等待,为性 ...

  8. RMAN异机恢复快速参考

    应用场景:服务器A为正常运行的生产环境,需要在服务器B上部署一套相同环境做测试. 数据库环境:RHEL6.4 + Oracle 11.2.0.4.7 一. 服务器A备份数据库 1.1 在线备份(数据库 ...

  9. Linux平台oracle 11g单实例 安装部署配置 快速参考

    1.重建主机的Oracle用户 组 统一规范 uid gid 以保证共享存储挂接或其他需求的权限规范 userdel -r oracle groupadd -g 7 oinstall groupadd ...

随机推荐

  1. js 原型

    1: function Person (name,age) { 2: this.name = name; 3: this.age = age; 4: } 5:   6: Person.prototyp ...

  2. [C++程序设计]内置函数

    注意: 可以在声明函数和定义函数时同时写 inline,也可以只在其中一处声明inline,效果相同,都能按内置函数处理. 使用内置函数可以节省运行时间,但却增加了目标 程序的长度.因此一般只将规模很 ...

  3. php 写队列

    这里不得不提到php的数组函数真的是太强大了 队列是先进先出 那么对于数组来说就尾部插入,头部拿出 这里提供方法 尾部插入 我们知道有一个函数array_push 头部拿出 array_shift($ ...

  4. django最简单表单入门

    两个html页面,存放于某个应用下的templates文件夹下. index.html 提交 点击“提交”按钮后,会调入第二个页面hello.html显示文本框的内容 原理是通过form的action ...

  5. Java中的深复制与浅复制

    1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不 复制它所引用的对象. ...

  6. linux下JDK,tomcat的安装与环境变量配置

    先从网上下载jdk(jdk-1_5_0_02-linux-i586.rpm) ,下载后放在/home目录中,当然其它地方也行. 进入安装目录#cd /home#cp jdk-1_5_0_02-linu ...

  7. LeetCode_Length of Last Word

    Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...

  8. BufferedStream类 - 缓冲流

    BufferedStream常用于对其他流的一个封装,它必须和其他流结合一起使用.MemoryStream将所有的内容都放入内存中,而BufferedStream不是.BufferedStream在基 ...

  9. relative与absolute相结合

    relative会把别人挤下去, absolute会跑偏. 两者结合就会很好的解决问题. <span class='pic_selected' style='position:relative; ...

  10. Unix/Linux环境C编程入门教程(38) shell命令进阶演示

     1.w命令 该命令也可以查看登录当前系统的用户信息.与who命令相比,w命令的功能更强大,它不但可以显示当前有哪些用户登录到系统,还可以显示这些用户正在进行的操作,并给出更加详细和科学的统计数据 ...