2012-05-10 131 views
2

在CakePHP中的形式輔助生成表單元素等,這通常:刪除換行符的CakePHP

<div class="input text"> 
    <label for="Firstname">Firstname</label> 
    <input type="text" id="Firstname" value="" class="test" name="Firstname"/> 
</div> 

但是它能夠去除換行符那就是<label><input>之間有這樣的事情:

<div class="input text"> 
    <label for="Firstname">Firstname</label> <input type="text" id="Firstname" value="" class="test" name="Firstname"/> 
</div> 

有什麼想法嗎?

謝謝

+0

換行符有什麼問題?它做的事情是不應該的? – lamelas

+0

你確定它會創建換行符嗎?在我的應用程序看頁面源,我正是這樣的:'

'Theres沒有標籤之間的空白。 – tigrang

+0

是的,它確實放了一個換行符,我不知道爲什麼 – user765368

回答

6

的「換行」是不是在HTML,而這是在默認的CakePHP CSS。爲了解決這個問題,我添加了下面的CSS規則,我烤CakePHP的應用:

label { 
    display: inline; 
    width: 20%; 
    float: left; 
} 
input, textarea { 
    width: 76%; 
    clear: none; 
} 
form div.submit { 
    clear: none; 
    display: inline; 
} 

這基本上內聯這兩個標籤和輸入,並適當設置寬度爲他們(你可能想改變號碼爲您的應用程序,具體取決於長度。)

讓我知道這是否工作。您可以將這些行添加到APP/webroot/css/cake.generic.css的底部,或者根據需要添加新的CSS文件。

0

我同意@ srs2012的回答,但有一種方法可以格式化表單助手的輸出。

FormHelper :: input()操作也在其第二個參數中接受'format'鍵。 此鍵是元素順序的格式模板。默認輸入格式順序爲:

array('before', 'label', 'between', 'input', 'after', 'error') 

任何不在數組中的元素都不會出現在輸出中。所以,如果你修改這個,並刪除'之間'鍵可能只是工作。

舉個例子:

echo $this->Form->input('Model.name', array('format' => array('before', 'label', 'input', 'after', 'error'))); 

其實我也不得不在一個項目只有一次使用此設置。 CakePHP 1.3 API中的Here it is。 玩一下,看看你能想出什麼。