Empfehlungen: Erweiterte Suche

referer oder redirect oder wie überhaupt?

Fragen zur Konzeptionierung und womit man am besten anfäng? Hier rein...

referer oder redirect oder wie überhaupt?

Beitragvon pixitrixi » Sa 8. Aug 2009, 17:21

Hallo zusammen!

Ich habe dieses Forum und auch Google durchgestöbert, aber noch nichts brauchbares gefunden. Ich bin aber auch relativ neu bei CakePhP.

Nun zu meiner Frage:
Man stelle sich ein Hauptformular vor, wie z.B. eine Addresseingabe für Firmen.
Nun gibt es Felder (1:n Beziehung) wie zum Beispiel Anrede, Titel, zusätzliche Ansprechpartner(n:1) etc. welches ich über einen Link von diesem Hauptformular
zugänglich machen will, damit man Einträge z.B. bei der Tabelle Titel hinzufügen kann.

Was ich nun oft brauchen würde ist:
über das Hauptformular auf ein anderes zu kommen (das ist nicht weiter schwer), dort Daten eingeben/updaten zu können
und dann wieder zurückzufinden (aber eben nicht mit hartcodierten urls) , und wenn möglich auch schon den neu hinzugefügten Datensatz im Hauptformular aktiviert zu haben.

Kann mich bitte jemand beraten, bzw. mir zeigen wo diese Thematik behandelt wird?

Danke sehr im Voraus!
pixitrixi
 
Beiträge: 25
Registriert: Sa 8. Aug 2009, 17:07

Re: referer oder redirect oder wie überhaupt?

Beitragvon dth33 » Sa 8. Aug 2009, 19:03

Hi,

mir ist nur sowas eingefallen:

Bleiben wir mal bei dem Beispiel, dass Du zu jeder Firma mehrere Ansprechpartner eingeben möchtest. Dann kannst Du Dir doch eine add-Action basteln, der Du bei Aufruf die Id der Firma übergibst.

Code: Alles auswählen
function add($companyId = null) {
            // weitere Aufrufe verarbeiten (Submit in der Form)
            if (!empty($this->data)) {
                    $this->Partner->create();
            if ($this->Partner->save($this->data)) {
                        // Nach dem Speichern zurück zur anfragenden Url
                       $this->flashSuccess('Der Partner wurde gespeichert', $this->Session->read('referer'));
            } else {
                      $this->flashWarning('Der Partner konnte nicht gespeichert werden.');
           }
            }
            // 1. Aufruf mit Company-Id
            if (empty($this->data)) {
                // Wo kommt die Anfrage her? Ergebnis in die Session schreiben
                $this->Session->write('referer', $this->referer());
                // $this->data ist leer und wird nun vorbelegt
        $this->data['Partner']['company_id'] = $companyId;
            }
    }


Beim ersten Aufruf schreibe ich also den referer in die Session. Nach erfolgreichen Speichern, geht es zurück. Dazu wird der referer wieder aus der Session ausgelesen. Sollte der Partner nicht gespeichert werden können (etwa weil die Validierung fehl geht), bleiben wir auf der Form. Da sich in diesem Fall der Inhalt von referer ändern würde, ist der Umweg über die Session eine möglich Lösung. Alles ausbaufähig und vielleicht nicht der beste Weg.

Wenn jemand eine andere Idee hat, her damit.

Gruß Steffen
dth33
 
Beiträge: 33
Registriert: Do 22. Jan 2009, 15:38
Wohnort: Am schönen Niederrhein
CakePHP-Version: 1.3
OS: Win32

Re: referer oder redirect oder wie überhaupt?

Beitragvon Dogo » So 9. Aug 2009, 05:03

Sollte so gehen:

Im View der Firma /companies/view/2 (2 als Beispiel):
Code: Alles auswählen
<?php echo $html->link('Einen Ansprechpartner anlegen','/ansprechpartner/add/'.$companies['Company']['id']); ?>


Im View von '/person/add/':
Code: Alles auswählen
<?php
echo $form->create('Person');
echo $form->input('text', array('rows' => '2'));
echo $form->input('company_id', array('type'=>'hidden','value' => $this->passedArgs[0]));
echo $form->end('Erstellen');
?>

Die oben in der ULR übergebene 2 wird dann unter "company_id" mitgegeben und kann mit gespeichert werden. Sollte sie ja auch :)

Dann im persons_controller in "add":
Code: Alles auswählen
$this->redirect(array('controller' => 'companies', 'action' => 'view', $this->data['Option']['company_id']));

Einfach einen anderen Controller anwählen.

Grüße,

Dogo
Benutzeravatar
Dogo
 
Beiträge: 63
Registriert: Do 6. Aug 2009, 00:59
Wohnort: Wuppertal

Re: referer oder redirect oder wie überhaupt?

Beitragvon pixitrixi » Fr 21. Aug 2009, 09:50

Hallo!

Ich hab mich total über die raschen, kompetenten und überaus freundlichen Antworten gefreut!
Sorry bitte auch dass ich mich erst jetzt wieder melde und mich bedanke! Erst jetzt kann ich wieder mit meiner
Arbeit mit CakePHP fortfahren :-)

Ich habe mich vorerst für die Variante von Dogo entschieden.
Es funktioniert auch sehr gut soweit!

Es kann aber gut sein dass ich diesbezüglich noch eine erweiterte Frage habe, dann versuche ich es wieder hier!

Vielen Dank nochmals!
pixitrixi
 
Beiträge: 25
Registriert: Sa 8. Aug 2009, 17:07

Re: referer oder redirect oder wie überhaupt?

Beitragvon euromark » Fr 21. Aug 2009, 10:20

der erste code teil lautet aber korrekt (mit array syntax):
Code: Alles auswählen
<?php echo $html->link('Einen Ansprechpartner anlegen',array('controller'=>'?','action'=>'add', $companies['Company']['id']); ?>

also immer mit dieser art die links gestalten, damit bist du flexibel (auch was routing betrifft), wenn sich was ändert
euromark
 
Beiträge: 642
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: referer oder redirect oder wie überhaupt?

Beitragvon pixitrixi » Fr 21. Aug 2009, 12:25

ah ja, stimmt so ists wohl sauberer!?
die letzte Zeile muss man dann auch noch für seine Fälle anpassen (v.a.: 'Option'),
sollte wer das auch brauchen.

Ich überleg schon wie ich das bewerkstelligen soll wenn ich bei diesem Beispiel "Ansprechpartner"
von verschiedenen Formularen aus bearbeiten will, also wir hatten jetzt ja Company also Firma.
Wie wäre es dann wenn ich einen Auftragsformular habe und dabei einen neuen Ansprechpartner anlegen will.

das ist jetzt ein Blödes Beispiel, weil ich da ja immer über Firma kommen kann, besser wäre es bei "Titel" oder "Kategorie", Formulare bzw. Daten die ich bei verschiedenen Formularen anwenden kann.
da müsste man dann eine Fallunterscheidung für redirect einbauen, oder?

Naja aber soweit bin ich noch nicht, erstmal diese Funktion überall einbauen...
pixitrixi
 
Beiträge: 25
Registriert: Sa 8. Aug 2009, 17:07

Re: referer oder redirect oder wie überhaupt?

Beitragvon pixitrixi » Fr 21. Aug 2009, 18:17

eine weitere Frage:

Was ist wenn man den Ansprechpartner von einem add Fromular (Firma) aus zufügen will, wie kann man da wieder zurückkehren,
da es ja noch keine gespeicherten Inhalte gibt.

das müsste man dann auch mit einer Session lösen, oder?
pixitrixi
 
Beiträge: 25
Registriert: Sa 8. Aug 2009, 17:07


Zurück zu Konzeption und Vorgehensweise

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron