7.2 为实体定义Schema

作者:老葛,北京亚艾元软件有限责任公司,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主键,用来关联字段的,其它什么属性也没有定义。简单就好。

我们采用这样的策略,首先,定义好实体,然后向实体上面添加两个字段pathlink,之后将这两个字段的定义使用Features导出来,然后把里面的定义代码复制到我们的模块里面,这样我们在安装的时候,就直接为我们的面包屑实体创建好字段了。一步一步来。


Drupal版本: