作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
和开发普通的模块一样,当需要存储数据的时候,我们需要定义自己的数据库表,这个时候,就需要定义Schema了。这个我们以前也讲过了,来看这里的定义。首先创建breadcrumb2.install文件,在里面输入以下内容:
<?php
/**
* @file
* Install, update and uninstall functions for the breadcrumb2 module.
*/
/**
* Implements hook_schema().
*/
function breadcrumb2_schema() {
$schema['breadcrumb'] = array(
'description' => 'Stores breadcrumb items.',
'fields' => array(
'bid' => array(
'type' => 'serial',
'not null' => TRUE,
'description' => t("'Primary Key: Unique breadcrumb item ID."),
),
),
'primary key' => array('bid'),
);
return $schema;
}
最上面的文件的描述说明,那段文字是直接从profile2.install里面复制过来的,下面的breadcrumb2_schema也是从那边复制过来的,只不过我们根据自己的需要做了修改。面包屑,这个实体比较简单,本来我想在这里定义一个属性path的,但是一想,自己需要为它创建一个表单元素,负责它的编辑、验证、存储,感觉有点麻烦,所以直接将它交给Field系统了。所以数据库表breadcrumb的结构非常简单,就一个bid主键,用来关联字段的,其它什么属性也没有定义。简单就好。
我们采用这样的策略,首先,定义好实体,然后向实体上面添加两个字段path、link,之后将这两个字段的定义使用Features导出来,然后把里面的定义代码复制到我们的模块里面,这样我们在安装的时候,就直接为我们的面包屑实体创建好字段了。一步一步来。