Ecstore 中数据表结构定义 dbschema 详解( 二 )


Ecstore 中数据表结构定义 dbschema 详解

文章插图
一、字段类型
系统中定义的字段类型有很多,详细可查询官方文档,这里只列出了一些比较特别的.并稍作介绍.
1.关联主键表
1
2
3
'type'=>'table:@b2c',
//关联b2c应用下表中的主键类型
//如果在同一app下,可省略@
2.枚举类型
1
2
3
4
5
6
7
'type'=>array(
''=> app::get('b2c')->_('程序员'),
''=> app::get('b2c')->_('文艺青年'),
),
// 生成枚举类型 enum('','')
// 高级搜索将产生一个选项可以进行选择
// 在后台列表中,会根据查询出来的值显示出枚举出的数据
3.email类型
//存在数据库中的类型是(255),虽然可以直接写成mysql类型,但在这里写了email类型后,使用dbeav的save时会验证是否是email类型的数据 如果不是将抛出异常.
(跟money类型异曲同工,其实有很多类型由于在程序中我们都有验证,所以可以直接写成mysql类型的)
二、后台列表
1.
列表页中简单搜索的处理方式,如果中存在则会在列表上显示相关的简单搜索,而的类型使用的是dbeav中的过滤器类型
1
2
3
4
5
6
'than'=>' > '.$var,
'lthan'=>' < '.$var,
''=>' = \''.$var.'\'',
''=>'\''.$var.'\'',
''=>' = \''.$var.'\'',
'sthan'=>' = '.$var,'has'=>' like \'%'.$var.'%\'','head'=>' like \''.$var.'%\'','foot'=>' like \'%'.$var.'\'','nohas'=>' not like \'%'.$var.'%\'',''=>' {field}>='.$var[0].' and '.' {field}" in ('".("','",(array)$var)."') ",
三、
刚开始看到时感觉有点***,也不知道是哪位高人前辈命名的~~平时自己做的app也很少用到,所以也没做过多注意.
后来二开order时,又看到这个,感觉好二~~~ 于是有看了下里后理解了,说下自己的见解,也给大家起点抛砖引玉的作用.
1
2
3
4
5
6
7
8
9
'name'=>
array(
'type'=>'(20)',
),
'email'=>
array(
'type'=>'email',
''=>'/email',
),
保存的时候,POST的数组是:
1
2
3
4
5
6
$_POST=array(
'name'=>'',
''=>array(
'email'=>'',
)
);
至此,数据表定义文件已经大体给介绍完了,虽然有很多详细细节没有讲解,但是结合官方文档查看即可,而本文的介绍的很多是官方文档没有明确介绍的部分,大家可以拿此文和官方文档一起学习 。
创建好文件后,记得cmd 一下哦,不然是无法更新出数据表的 。