Fremdschlüssel in Drupal 7 Schema Probleme
-
26-09-2019 - |
Frage
habe ich ein Problem mit Drupal 7-Schema für das Modul. Es gibt 4 Tabellen, aber für Probe 2 wird ausreichen, um:
function mymodule_schema() {
$schema['series'] = array(
'fields' => array(
'id' => array(
'type' => 'serial',
'unsigned' => true,
'not null' => true,
),
'name' => array(
'type' => 'varchar',
'length' => 255,
'not null' => true,
),
),
'unique keys' => array(
'name' => array('name'),
),
'primary key' => array('id'),
);
$schema['sermon'] = array(
'fields' => array(
'id' => array(
'type' => 'serial',
'unsigned' => true,
'not null' => true,
),
'title' => array(
'type' => 'varchar',
'length' => 255,
'not null' => true,
),
'series_id' => array(
'type' => 'int',
),
),
'foreign keys' => array(
'series_id' => array(
'table' => 'series',
'columns' => array('series_id' => 'id'),
),
),
'primary key' => array('id'),
);
return $schema;
}
Dieser Code Tabellen erstellen, aber keine Fremdschlüssel. Beispiel für die Umsetzung komme ich von Drupal.org: http://drupal.org/node/146939
Drupal-Version 7.0-beta 3
..Als Idee. Vielleicht, es ist noch nicht implementiert, ich sehe es nicht in node
Tabelle (Dokumentation Beispiel zeigen Sie auf Code von ihm des Installateurs)
Danke für Ihre Hilfe.
Lösung
Nach diesen Beitrag , gerade vor ein paar Monaten, die hook_schema
Funktion nicht implementiert die Schaffung fremde Schlüssel. Es kann jedoch anhand bestehenden.
Vielleicht eine Behelfslösung wäre, die Fremdschlüssel schöpf SQL in hook_init
(oder eine der anderen API-Methoden) laufen. Leider scheint es nicht eine bessere Lösung dieses Recht jetzt.
Andere Tipps
Sie haben die richtige Idee, dies noch nicht implementiert ist: /
Ich habe keine Ahnung, warum sie dies nicht deutlich anzugeben, aber anscheinend sind die Fremdschlüssel Erklärungen zu Dokumentationszwecken nur im Moment (und Vorbereitung etwas Nützliches mit ihnen später zu tun, zumindest würde man hoffen, so).
Siehe dieser Kommentar und unterhalb auf die (fälschlich) thread 'Fremdschlüssel Kern hinzufügen'
Dies ist eine sehr alte Post, aber als Referenz Dies kann helfen,
'foreign keys' => array(
'series_id' => array(
'table' => 'series',
'columns' => array('id' => 'series_id'),
),
),