CakePHP 2.0 $this->Formular->input()
Dies ist meine Beurteilung.tcp
...
<?php
echo $this->Form->create('Group');
echo $this->Form->input('group_id', array('label' => 'ID'));
echo $this->Form->input('group_desc', array('label' => 'Group Description'));
echo $this->Form->end('Save');
?>
Tabelle-name: Gruppen
Tabellenfelder: group_id, group_desc
PK: group_id
Dies ist mein controller
...
class GroupsController extends AppController {
public $helper = array('Html', 'Form', 'Session');
public $components = array('Session');
public function add() {
if ($this->request->is('post')) {
if ($this->Group->save($this->request->data)) {
$this->session.setFlash('');
$this->redirect(array('action' => 'index'));
}
}
}
}
Wenn ich in dieser Ansicht angezeigt werden auf dem browser, es wurde nichts für das Feld group_id aber es war für die group_desc, die HTML-Quelle für das so Aussehen
...
<form action="/cakephp/index.php/groups/add" id="GroupAddForm" method="post" accept-charset="utf-8" name="GroupAddForm">
<div style="display:none;">
<input type="hidden" name="_method" value="POST">
</div><input type="hidden" name="data[Group][group_id]" id="GroupGroupId">
<div class="input text">
<label for="GroupGroupDesc">Group Description</label><input name="data[Group][group_desc]" maxlength="15" type="text" id="GroupGroupDesc">
</div>
<div class="submit">
<input type="submit" value="บันทึก">
</div>
</form>
Warum wurde es versteckt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
CakePHP automatisch feststellt, dass Sie nicht möchten, dass ein Benutzer manuell geben Sie eine ID ein, als solche verbirgt, der es für Sie.
Wenn Sie möchten, um force-ID-Feld angezeigt werden, legen Sie die
type
zutext
:Da primary key-Eingänge sind standardmäßig ausgeblendet.
CakePHP erstellt den Primärschlüssel für Sie auf hinzufügen, wie auto-Inkrement INT oder uuid CHAR
Manuelles erstellen Ihre primäre Schlüssel ist nicht zu empfehlen.
ändern Sie können die versteckten Typ text:
Wie pro Ihre Datenbank-Struktur möchte ich etwas vorschlagen:
Ihre Gruppe Tabelle hat group_id als primary key
machen Sie es auto_increment von der Datenbank und es gibt keine Notwendigkeit, um diese id manuell im Formular hinzufügen, wird es automatisch gespeichert. Formularfelder erzeugen als pro-Modell-Struktur.