Ich bin ein Neuling bei CakePHP. Ich habe ein Formular mit 5 Eingaben erhalten. Mein Formular sollte in der Lage sein, entweder eine Benutzereingabe oder alle 5 Eingaben zu speichern. Ich kann speichern, wenn der Benutzer alle 5 Eingaben füllt, wenn der Benutzer nur 1 oder 2 füllt und speichert. Leerstellen mit erstelltem Datum (aktuelles Datum) werden in der Datenbank gespeichert. Wie kann ich es machen, nur die Benutzereingaben vom Formular ohne irgendwelche leeren Felder in der Datenbank zu speichern. Meine Add-Funktion unten.CakePHP mehrere Eingabefelder
public function add() {
if ($this->request->is('post')) {
$this->Item->create();
for ($i=0;$i<5;$i++){
if(empty($this->request->data['Item'][$i]['name'])){
}else{
$name = $this->request->data['Item'][$i]['name'];
$explode_name = explode(":",$name);
$this->request->data['Item'][$i]['name'] = $explode_name[0];
$this->request->data['Item'][$i]['hrid'] = $explode_name[1];
}
}
if ($this->Item->saveAll($this->request->data['Item'])) {
$this->Session->setFlash(__('The Item has been saved'));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The item could not be saved. Please, try again.'));
}
}
$itemTypes = $this->Item->ItemType->find('list',array('order' =>array('ItemType.name' => 'asc')));
$this->set(compact('itemTypes'));
}
können Sie die zeigen, Debug-Ergebnis von $ this-> request-> data; oder halten Sie einfach die Funktionalität in einem anderen Teil Ihres Codes! –