modulom telepítőjében user field foreign key, group

deblaci képe

Hogyan tudok a modulom telepítőjében létrehozni egy olyan dupal user fieldet (látszik és kitölthető a regisztrációkor) ami foreign key legyen egy department(id, name) táblára?

A field api doksijába nem láttam ilyen példát.

Hogyan tudok a modulom telepítőjében létrehozni user group-okat?

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
segi képe

Drupal 7 esetén a külső kulcsnak csak dokumentációs szempontból van jelentősége, a tábla és adatbázis szempontjából semmi!
Ha valaki egy .install fájlban megnézi a hook_schema-t akkor tudni fogja hogy melyek azok a mezők, amelyek külső kulcsnak lettek felvéve!

0
0

Drupal developer at Cheppers

deblaci képe

Köszi, de ebből még nem tudom hogyan lehet létrehozni egy ilyen mezőt.

// Create a field named 'Foo node reference'
$field_name = 'field_foo_node_reference';
$field = field_info_field($field_name);
if (empty($field)) {
$field = array(
'field_name' => $field_name,
'type' => 'node_reference',
'cardinality' => FIELD_CARDINALITY_UNLIMITED,
'entity_types' => array(),
'locked' => TRUE,
'settings' => array(
'referenceable_types' => array(
'article' => 'article',
'page' => 'page',
),
),
);
field_create_field($field);
}

// Attach the field to the program node type
$instance = field_info_instance('node', 'field_foo_node_reference', 'foo');
if (empty($instance)) {
$instance = array(
'field_name' => $field_name,
'entity_type' => 'node',
'bundle' => 'foo',
'label' => t('Foo node reference'),
);
field_create_instance($instance);
}

Gondolom itt kellene a type-nak megadni a 'node_reference' helyett valami mást, de rákerestem és nem találtam ide doksit ami leírná hogy milyen típusok vannak.

0
0
silversk8r képe

A schema api még nem tud foreign key-t létrehozni a Drupal 7-ben, csak létező kapcsolatokat lehet megmutatni neki. Erre a hook_install() és hook_uninstall() függvényeket lehet használni.
itt egy példa:
http://mikkel.hoegh.org/blog/2011/10/06/using-database-level-foreign-key...

0
0