Um die beiden modelle automatisch bei abfragen zu finden, benötigt die
belongs_to tabelle ein feld wie [anderesModel_id] also [artist_id].
kann es vielleicht sein das diese validierung dann in die alben
klasse müsste und das tabellen feld falsch benannt ist?
(Keine ahnung wie deine tabellen aussehen)
var $validate = array
(
'artist' => VALID_NOT_EMPTY
);
bei speichern musst du diese id von hand in dein belongs_to model
einfügen. in deinem fall könnte die save Methode so aussehen:
function add()
{
if(!empty($this->data))
{
if(empty($this->data['Album']['artist_id']))
{
$this->Album->Artist->save($this->data['Artist'])
$this->data['Album']['artist_id'] = $this->Album->Artist-
>getLastInsertId();
}
$this->Album->save($this->data));
}
}
Ich habe ein zusätzliche schleife eingebaut empty([..artist_id]).
keine ahnung ob du das brauchst, so kannst du aber im formular z.b.
hiddenfield eine artist id von einem bestehendem künstler mitgeben
falls es leer ist, wird ein neuer künstler gespeichert und seine id
ans album array eingefügt.
das if empty([..artist_id]) funz übrigens, beim ersten künster mit der
id 0, beim hinzufügen von alben nicht
Die id ist vorhanden wenn du für einen bestehenden künstler ein neues
album anlegen willst.
In diesem Falle rufe ich meistens die function mit der Künstler_id als
parameter auf.
album/add/50
function add($artist_id=null)
{
if(!empty($this->data))
{
if(empty($this->data['Album']['artist_id']))
{#new artist
$this->Album->Artist->save($this->data['Artist'])
$this->data['Album']['artist_id'] = $this->Album->Artist-
>getLastInsertId();
}
$this->Album->save($this->data));
}
if(!empty($artist_id))
{#set existing id for form artist_id field
$this->data['Album']['artist_id'] = $artist_id;
}
}
Das automatische speichern der relation geht leider nicht. Du solltest
wenn die artist id als parameter übergeben wird, diese auch noch
überprüfen .. z.B. mit nem simplen find ob sie existiert (oder dem
user gehört).
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---