2013-10-06 5 views
7

Mam więc to pole, które chcę ukryć w mojej formie.Ukryte pole wejściowe Cakephp

W tym celu Próbowałem następujące:

<?php echo $this->Form->input('group_id', array('hiddenField' => true, 'value'=> 2)); ?> 

Próbowałem również:

<?php echo $this->Form->input('group_id', array('options' => array('hiddenField'=> 'true'), 'value'=>2)); ?> 

jaki kiedykolwiek wciąż widzę pole wprowadzania ..

Co robię źle ?

Odpowiedz

19

Źle odczytałeś dokumentację, jak przypuszczam. hiddenField to włączanie/wyłączanie określonych ukrytych pól dla określonych pól formularza.

jesteś albo szuka

$this->Form->hidden('group_id') 

lub

$this->Form->input('group_id', ['type' => 'hidden']); 

Zwykle używam tylko ten ostatni.

Zobacz http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html

ALE - to powiedział - ty nie powinno właściwie użyć jednej z nich. I pomiń wszelkie pola, które nie mają żadnego prawdziwego celu dla widoku i jego formy. Zamiast tego należy wprowadzić te pola do tablicy danych przed zapisaniem. Zobacz http://www.dereuromark.de/2010/06/23/working-with-forms/

+0

prosimy dodać „)” na końcu, tuż przed „;”, w drugiej linii kodu lub po. –

+0

Thx, naprawiono za pomocą PHP5.4 '[]' :) – mark

0

Jeśli szukasz dodać ukryte pole, który wykorzystuje powiązany drugą tablicę danych, które nie będą przekazywane drogą pocztową lub umieścić domyślnie, można to wykorzystać, aby przekazać go:

echo $this->Form->hidden('Group.name'); 

Przydaje się to do echo edycji tytułów stron, gdy post lub put napotka błąd. Dynamiczny tytuł może stracić Group.name tablicę danych, gdy formularz jest ustawiony taki jak ten:

<h1>Edit Group - <?php echo h($this->request->data['Group']['name']); ?></h1> 

przypadku danych, które mają być zapisane w db jednak sugestii Marka powyżej.

0

Spróbuj następujący kod w CakePHP 3, aby ustawić pola ukrytego

<?php 
     echo $this->Form->hidden('name'); 
?>