2011-04-01 63 views
0

刪除CakePHP中

從表單助手我正在做一些練習與 CakePHP,我想刪除 HTML元素我通常避免像我從 Form->create()創建形式 <legend><fieldset>。 我已經看到有一些方法是這樣的:

<?php 
echo $this->Form->create('User', 
    array (
     'action' => 'login', 
     'inputDefaults' => array (
      'fieldset' => false, 
      'legend' => false 
     ) 
    )); 

    echo $this->Form->inputs(array (
     /*'legend' => __('Login', true),*/ 
     'username', 
     'password' 
    )); 

    echo $this->Form->end('Login'); 
?> 

如果我寫這篇文章<legend><fieldset>將是可見的,而不是。 是否存在一些特定的選項來刪除它們?

<form accept-charset="utf-8" action="/site.com/users/login" method="post" id="UserLoginForm"> 
    <div style="display: none;"><input type="hidden" value="POST" name="_method"></div> 
    <!-- hoto to remove this --><fieldset><legend>New User</legend><!-- end of removing --> 
     <div class="input text required"> 
      <label for="UserUsername">Username</label><input type="text" id="UserUsername" maxlength="255" name="data[User][username]"> 
     </div> 
     <div class="input password required"><label for="UserPassword">Password</label><input type="password" id="UserPassword" name="data[User][password]"></div> 
    <!-- hoto to remove this --></fieldset><!-- end of removing --> 
    <div class="submit"><input type="submit" value="Accedi"></div> 
</form> 

回答

2

問題是

echo $this->Form->inputs(array (
    /*'legend' => __('Login', true),*/ 
    'username', 
    'password' 
)); 

用來代替

echo $this->Form->input('username'); 
echo $this->Form->input('password'); 

從我讀過book.cakephp.org

0

我從來沒有見過形式幫手產生<fieldset><legend>。這將成爲你觀點的一部分。一個典型的視圖文件(/app/views/items.ctp)

<?php echo $this->Form->create('Item');?> 
    <fieldset> <!-- remove this from your view (CTP) file --> 
     <legend><?php __('Add Item'); ?></legend> 
    <?php 
     echo $this->Form->input('item_id'); 
     echo $this->Form->input('name'); 
    ?> 
    </fieldset> 
<?php echo $this->Form->end(__('Submit', true));?> 

正如你所看到的,<fieldset><legend>在視圖中的HTML的一部分。只需將其從標記中刪除即可。 FormHelper僅爲FORM和幾個實用程序輸入生成標記。

+0

我沒有在視圖中編寫任何部分的html。該觀點正是如何在問題的第一部分代碼中出現的。 – vitto 2011-04-01 12:06:16

+0

你在使用腳手架嗎?還要刪除所有的選項數組(inputDefaults ...)只需使用乾淨的輸入()。怎麼了? – JohnP 2011-04-01 12:10:43

+0

是的,問題是我發佈的語法 – vitto 2011-04-01 16:07:54

4

輸入()函數是一個新的1.3的例子,可以讓你將你的領域捆綁在一個單一的功能中,整理一些東西。以下是如何殺死字段集和圖例:

echo $this->Form->input(array(
    'legend' => false, 
    'fieldset' => false, 
    'username', 
    'password' 
)); 
+0

+1您必須同時使用''legend'=> false','fieldset'=> false'選項來擺脫fieldset標籤。 – Ish 2013-05-22 20:36:04