Datensatz anlegen erzeugt gleichzeitig einen Ordner

30 views
Skip to first unread message

Jerome Walitzek

unread,
Oct 31, 2012, 5:04:43 AM10/31/12
to cakep...@googlegroups.com
Hallo Zusammen,

ich versuche mich gerade an folgendem und könnte ein wenig Unerstützung bzw Hilfe gebrauchen

Im View "add" gebe ich im Feld "name" einen Namen ein für die Galerie. Zum anderen soll das selbige Feld verwendet werden um einen Ordner im "WWW_ROOT/files" azulegen.

Da ich CakePHP 2.2 verwende ist ja hier für folgendes API vorhanden welches ich im Controller einbauen muss. (Denke ich mal oder ?)

$dir = new Folder('/path/to/folder', true, 0755);

Nun stellt sich für mich die Frage, wie schaffe ich es im Controller mir den Wert des Feldes "name" zu holen und dort einzusetzen ?
Hat jemand eine Idee ?

Für Hilfe bin ich dankbar.



Mark Kessler

unread,
Oct 31, 2012, 5:18:28 AM10/31/12
to cakep...@googlegroups.com
Ich würde das ganze in das Model "Gallery" verlegen oder wie es bei dir heisst, und zwar in den beforeSave Callback. Dort findest du das "name" Feld in $this->data['Gallery']['name'].

Ausserdem würde ich im beforeDelete Callback dafür sorgen dass der Folder wieder gelöscht wird. 

Gruß,
Mark ;)

2012/10/31 Jerome Walitzek <jerome....@t-online.de>




--
Bitte bei Fragen immer auch die aktuell verwendete cakePHP Version angeben und
wenn möglich auch das verwendete Betriebssystem und die PHP Version. Danke.
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 cakep...@googlegroups.com
Um sich von dieser Gruppe abzumelden, senden Sie eine E-Mail an cakephp-de-...@googlegroups.com
Weitere Optionen finden Sie in dieser Gruppe unter http://groups.google.com/group/cakephp-de?hl=de

Jerome Walitzek

unread,
Oct 31, 2012, 5:29:16 AM10/31/12
to cakep...@googlegroups.com
Hi,

ja super danke dir für den Hinweiss. Hat auch direkt auf anhieb geklappt.
Danke dir.

jerome

unread,
Oct 31, 2012, 8:40:26 AM10/31/12
to cakep...@googlegroups.com
Hi,

nun bin ich doch hingegangen habe lase mir nun immer einen Ordner mit der jeweiligen ID anlegen welche durch das anlegen des Datensatzes erzeugt wird.
Im Model ist das dann der Befehl

public function afterSave() {
        $id = $this->data['Gallery']['id'];
        $Folder = new Folder('gallery/'.$id, true, 0755);
        return true;
}

Funktioniert prima !

Nun habe ich mich auch mal mit dem Befehl "beforeDelete" beschäftigt. Meiner sieht derzeit wie folgt aus.

public function beforeDelete() {
        $id = $this->Gallery->id;
        $Folder = new Folder('gallery/'.$id);
       
        if ($Folder->delete()) {
            return true;
        }   
}

Doch hier habe ich das Problem das er mir egal welchen Datensatz ich lösche nicht den einzelnen ID-Ordner löscht sondern gleich den ganzen "gallery" Ordner.

Was mache ich verkehrt ?

Liebe Grüße
Jerome

Mark Kessler

unread,
Oct 31, 2012, 8:45:37 AM10/31/12
to cakep...@googlegroups.com
Das heisst $this->id und nicht $this->Gallery->id, du bist ja im Model und nicht im Controller ;)


2012/10/31 jerome <jerome....@t-online.de>

jerome

unread,
Oct 31, 2012, 8:50:53 AM10/31/12
to cakep...@googlegroups.com
Manchmal sieht man vor lauter Bäumen den Wald nicht mehr.
Oder wars andersrum ?

Nein du hast recht. Vielen Dank. Das funktioniert nun einwandfrei.

Danke nochmals für die Hilfe und ich werde auch das mit den Thema "Eingaben in unterschiedliche Models speichern" auch noch ausprobieren.

Liebe Grüße
Jerome
Reply all
Reply to author
Forward
0 new messages