2016-06-29 12 views
1

Ich habe ein Formular, wo ich zwei Modelle zum Hinzufügen von Informationen aus zwei verschiedenen Tabellen senden.Wie werden Standardfelder in Multi-Model-Form mit CakePHP 3 festgelegt?

Orte und Ereignisse. Wenn sich das Ereignis an einer Stelle befindet, die nicht in der Datenbank enthalten ist, lasse ich dem Benutzer Ortsinformationen hinzufügen. Dies funktioniert gut für mein Add Event.

Jetzt möchte ich die Edit-Version für Ereignisse machen, aber die Daten sind nicht mit Standardwerten gefüllt.

Meine Form ist wie:

<?php 
echo $this->Form->create($event); 
echo $this->Form->input('Place.address'); 
echo $this->Form->input('Place.lat'); 
echo $this->Form->input('Place.lon'); 
echo $this->Form->input('Event.place_id'); 
echo $this->Form->button(__('Validar')); 
echo $this->Form->end(); 
?> 

In meinem EventsController ich so etwas wie dieses:

$place = $this->Places->newEntity(); 
    $event = $this->Events->newEntity(); 

    if ($this->request->is('post')) { 
     $place = $this->Places->patchEntity($place, $this->request->data['Place']); 
     $event = $this->Events->patchEntity($event, $this->request->data['Event']); 

    $this->set('place', $place); 
    $this->set('event', $event); 

Normalerweise mit einem Modell, Felder alle mit Datenbank gefüllt Standard haben.

Wie kann ich mit zwei Modellen Standardeinstellungen vornehmen?

Ich möchte die default => $ place-> place_id Option für jedes Feld vermeiden.

Vielen Dank

Antwort

1

Ihre Frage ist unklar. Warum erstellen Sie neue Entitäten in einem Bearbeitungsformular? Warum legen Sie keine Standardwerte in Ihrem SQL fest?

Außerdem sollten Sie die Modelle zuordnen und mit Assoziationen arbeiten. Ein Event hat einen Platz. Ort gehört zu Ereignis siehe das Buch für weitere Informationen.

+0

Mein Kunde möchte neue Orte erstellen, wenn ein Ereignis seinen Platz in derselben Form ändert, ich schlage vor, es in zwei Formen zu machen, aber er besteht darauf, einen zu verwenden. Tabellen haben ihre Assoziationen. Mit 'default' => $ event-> place_id bekomme ich, was ich brauche, aber ich denke, es ist nicht sauber, setze alle Standardwerte für alle Felder. Ich akzeptiere Ideen. In Zukunft werden wahrscheinlich auch Kategorien in einer Form hinzugefügt werden müssen –