Hallo zusammen,

Ich komm bezgl. HABTM und Metadaten hier leider nicht weiter (auch
nicht nach mehreren Stunden Suche in der englischen Google Group /
Bakery etc. pp.)

Vielleicht hat ja hier jemand eine Idee.

Folgendes Szenario:

Benutzerprofile werden mit Sprachen verbunden, dabei wird auch
angegeben wie gut jemand eine Sprache beherrscht (META) und ob die
Info öffentlich sein soll (META).

Profile-Model:

        var $hasAndBelongsToMany = array(
                        'Language' => array('className' => 'Language',
                                                'joinTable' => 
'languages_profiles',
                                                'foreignKey' => 'profile_id',
                                                'associationForeignKey' => 
'language_id');

Language-Model:

        var $hasAndBelongsToMany = array(
                        'Profile' => array('className' => 'Profile',
                                                'joinTable' => 
'languages_profiles',
                                                'foreignKey' => 'language_id',
                                                'associationForeignKey' => 
'profile_id')

Das sollte alles soweit passen, der Join wird auch korrekt ausgeführt.

Die Tabelle languages_profiles sieht wie folgt aus:

profile_id
language_id
skill
public

Die letzten 2 Angaben sind die angesprochenen Metadaten der
Verknüpfung

Nun stellt sich für mich die Frage wie ich mit diesen Metadaten am
sinnvollsten arbeite.

Auslesen geht ja noch, auch wenn dies nur über die Rekursion des
LanguageModels zu funktionieren scheint.
Hier ein Dump wenn per
$this->Profile->findAll(...)
gesucht wird:

Array
(
    [Profile] => Array
        (
              .....
        )
....
    [Language] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [name_eng] => German
                    [name_deu] => Deutsch
                    [LanguagesProfile] => Array
                        (
                            [profile_id] => 1
                            [language_id] => 1
                            [skill] => 0
                            [public] => 0
                        )

                )

            [1] => Array
                (
                    [id] => 2
                    [name_eng] => English
                    [name_deu] => Englisch
                    [LanguagesProfile] => Array
                        (
                            [profile_id] => 1
                            [language_id] => 2
                            [skill] => 0
                            [public] => 0
                        )

                )

        )

)

Gibts da keine Möglichkeit direkter an die metadaten ranzukommen als
$arr['Language'][$i]['LanguagesProfile']['skill']
$arr['Language'][$i]['LanguagesProfile']['public']
?

Wenn nicht, ok, kein Problem ... geht ja, aber wie speichert man die
Metadaten auf die "kuchige" Art?
Die Verknüpfung direkt lässt sich ja ohne größere Probleme speichern
(per data['Language']['Language'] = array(language_id1,
language_id2 ..) ... aber wie speicher ich sinnvoll die Metadaten ohne
jetzt direkt auf die Verknüpfungstabelle a la:
$this->Profile->LanguagesProfile->save($data);
zuzugreiffen?

Ich hoffe die Frage war soweit klar, any ideas?


--~--~---------~--~----~------------~-------~--~----~
Sie erhalten diese Nachricht, weil Sie Mitglied sind von Google Groups-Gruppe 
"CakePHP-de für deutsche CakePHP Entwickler".
 Für das Erstellen von Beiträgen in dieser Gruppe senden Sie eine E-Mail
an [email protected]
 Um sich von dieser Gruppe abzumelden, senden Sie eine E-Mail an [EMAIL 
PROTECTED]
 Weitere Optionen finden Sie in dieser Gruppe unter 
http://groups.google.com/group/cakephp-de?hl=de
-~----------~----~----~----~------~----~------~--~---

Antwort per Email an