エンティティを使用して drupal でカスタム モジュールを作成しました。エンティティ API モジュールをインストールしました。employee_management.install ファイル (ここで、employee_management はカスタム モジュール名) を使用して、2 つの列 (employee_id、first_name) だけでデータベース スキーマを作成しました。employee はエンティティ名です。
必要な関数 employee_management.module も作成しましたが、それでもエラーが表示されます。管理者/構造/従業員に新しいエンティティを追加しようとすると、「見つかりません」というエラーが表示されます。
要求された URL drupal/employee/add/ は、このサーバーで見つかりませんでした。
function employee_management_entity_info() {
$employee_info['employee'] = array(
// A human readable label to identify our entity.
'label' => t('Employee Entity'),
// The controller for our Entity - extends the Drupal core controller.
'controller class' => 'EmployeeController',
// The table defined in hook_schema()
'base table' => 'employee',
// Returns the uri elements of an entity
'uri callback' => 'employee',
// Fieldable that we can attach fields to it - the core functionality will
// do the heavy lifting here.
'fieldable' => TRUE,
// The unique key of our base table.
'entity keys' => array(
'id' => 'employee_id',
),
// FALSE disables caching - caching functionality is handled by Drupal core
'static cache' => TRUE,
// Attach bundles - i.e. alternative configurations of fields associated with a main entity.
'bundles' => array(
'employee' => array(
'label' => 'Employee',
// Information below is used by the Field UI - they "attach" themselves here and lets us
// do the standard field management that all the core entities enjoy.
'admin' => array(
'path' => 'admin/structure/employee/add',
'access arguments' => array('administer employee entities'),
),
),
),
// View modes allow entities to be displayed differently based on context. We simply have one option
// here but an alternative would be to have a Full and Teaser mode akin to node.
'view modes' => array(
'full' => array(
'label' => t('Full'),
'custom settings' => FALSE,
),
)
);
return $employee_info;
}
編集
function employee_uri($employee) {
return array(
'path' => 'employee/' . $employee->employee_id,
);
}
そして、ここにファイル employee_management.module 内の関数の完全なリストがあります