Ich habe in meinen Datenbankmodell eine Tabelle "structures" mit den Feldern:
- structure_id
- parent_id
- name
Diese möchte ich mit sich selber verknüpfen um eine 1:n Relation zu erhalten. Also ähnlich wie ein Baum.
Mein Cakephp-Modell sieht dann wie folgt aus:
- Code: Alles auswählen
<?php
class Structure extends AppModel {
var $name = 'Structure';
var $primaryKey = 'structure_id';
var $displayField = 'name';
//The Associations below have been created with all possible keys, those that are not needed can be removed
var $belongsTo = array(
'ParentStructure' => array(
'className' => 'Structure',
'foreignKey' => 'parent_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
var $hasMany = array(
'ChildStructure' => array(
'className' => 'Structure',
'foreignKey' => 'parent_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
}
Nach dem erstellen des Controllers und der View lässt sich aber kein Element als übergeordnet definieren. (Das Dropdown ist leer), ändere ich die View ab:
- Code: Alles auswählen
- echo $this->Form->input('ParentStructure');
Wird das Dropdown befüll leider wird der ausgewähle Eintrag aber nicht in der Datenbank abgespeichert.
Trage ich manuell Id's in der Datenbank ein, werden diese in der Listen-Ansicht korrekt als Eltern-Element angezeigt...
Kann mir da jemand einen Tip geben? Vielen Dank. wuschu