2017-05-16 2 views
0

Ich bin sehr neu in diesem CakePHP-Framework, versuchen zu folgen und zu verstehen, wie man Dateien mit CakePHP hochladen. Ich verwende das Upload-Plugin von josezazgonzalez zur Verfügung gestellt. In der View-Datei, mit Formhelper ich habe:Wie bekomme ich Daten aus Input-Formular CakePHP 3

<?= $this->Form->create($user, ['type' => 'file']) ?> 
<fieldset> 
    <legend><?= __('Add User') ?></legend> 
    <?php 
     echo $this->Form->control('name'); 
     echo $this->Form->control('username'); 
     echo $this->Form->control('password'); 
     echo $this->Form->control('role'); 
     echo $this->Form->input('photo', ['type' => 'file']); 
     echo $this->Form->control('dir'); 
    ?> 
</fieldset> 
<?= $this->Form->button(__('Submit')) ?> 
<?= $this->Form->end() ?> 

ich wieder den Wert drucken möchten, die ich in meinem Controller vorgelegt, was soll ich schreiben? Etwas wie:

Antwort

3

$ this-> request-> Daten ist ein Array von Daten an Ihre Scrypt übergeben. Sie können es verwenden Feld zu erhalten, die Sie mit interessiert sind, zB:

$data = $this->request->data; 
$someVariable = $data["name"]; 

Oder Sie ein beliebiges Feld direkt zugreifen können, indem Daten mit() Zugriff:

$someVariable = $this->request->data("name"); 

Von diesem Punkt, Sie können mit dieser Variablen alles machen, was Sie wollen.

Noch eine Sache - da $ this-> request-> data und $ this-> request-> data() sind im veralteten Zustand und werden in der nächsten Version entfernt, ich schlage vor $ this-> request zu verwenden -> stattdessen getData(). Die Verwendung ist ähnlich:

$this->request->getData(); //will return array of data passed 
$this->request->getData("field_name"); //access to specific field 
+0

1 weitere Frage, wissen Sie über mehrere Dateien hochladen ?, im Probleme mit ihm zu, wählen Sie mehrere, aber nur 1 Upload und gespeichert – vicnoob

+0

Sie verwenden Plugin, das weiß ich nicht über , aber Ihre aktuelle Dateieingabe sollte nicht erlauben, mehr als eine Datei hochzuladen. Aber wenn Sie Ihre Dateieingaben wie folgt ändern: '$ this-> Form-> input (" fotos. ", [" Type "=>" file "," multiple "])' erlaubt es Ihnen, mehrere Dateien auszuwählen. Nach dem Absenden des Formulars wird in den Anforderungsdaten ein Array mit dem Namen "Fotos" angezeigt - Sie können es durchlaufen und alle Dateien speichern. – Szymon

+0

Mein Problem ist, dass wenn ich einen Punkt nach Fotos hinzufügen, habe ich den Fehler "Kann nicht eine leere Eigenschaft bekommen". Haben Sie Skype oder etwas, das ich für weitere Informationen kontaktieren kann? :( – vicnoob

Verwandte Themen