2012-01-24 81 views
0

所以我的問題是我知道如何將Helper加載到控制器中,但它僅適用於HtmlHelper而不是FormHelper。將FormHelper加載到控制器CakePHP 1.3中

我把它加載到我的方法是這樣的:

//this method is from an controller like page_controller  
function addField($pageID) { 

    if($this->RequestHandler->isAjax()) { 
     $this->autoRender = false; 
    } 

    App::import('Helper', 'Form'); 

    $form = new FormHelper(); 

    return $form->input('test'); 

} 

我喜歡未知stdClas不容負荷:: $模型等

一些錯誤,當我與輸出中它的HtmlHelper效果很好鏈接方法,我在我看來有一個完整的呈現鏈接。

我不會只加載Ajax一個新的輸入,但它不會工作,我不知道爲什麼... 希望你明白我的問題。

+0

我傾向於下來投給「故意壞編碼」這裏...但話又說回來,你可能不知道更好的。請仔細閱讀食譜。 – mark

+0

另外,你會想用'App :: iMport'來代替'App :: iNport'。 但馬克是正確的,這是不走的路。 – Joep

+0

Sry我使用了錯誤的字母,我會編輯它。我知道這種方式是錯誤的,我可以找到使用MVC的另一種方式...這就是爲什麼我要求的原因,因爲我無法在2天研究後找到它。我不知道爲什麼我得到這個答案insted答案我們可以找到它,如果你有人知道答案。如果我知道在Cakebook中找到它,我不會問。如果您知道如何使用並且在哪裏我可以找到我的答案,請告訴我可以找到或如何正確使用的鏈接。我知道MVC模式。 – webfacer

回答

2

你在那裏做什麼是非常錯誤的。 有一個很好的理由,爲什麼不這樣做,應該永遠不會按你的方式工作。

使用正常的MVC過程,如文檔和教程中所述。 http://book.cakephp.org/

你的情況

這意味着你需要始終使用視圖模板(/views/controllername/actionname.ctp) 並把你的形式的東西在裏面。

+0

我知道,但我怎麼可以說,它不需要渲染洞標題所有的東西。 因爲我只需要輸入字段進行渲染。 說一個用戶按e阿賈克斯鏈接meens「添加inputfiled」,這就是所有我想不要渲染漏洞網站。我怎麼能意識到這一點,我去年發現了一些關於json如何呈現它,我認爲有東西如何放棄洞html身體呈現只有我需要,但不知道在Cakebook中再次找到它。 – webfacer

+1

你似乎對你的不良行爲頗有抵觸情緒。無論你想渲染一個完整的html網站還是隻輸出一個字符都沒關係。你總是使用視圖來做到這一點。例如,您可以設置$ this-> layout ='ajax'來避免加載任何額外的佈局。那麼只有這個表單字段。 – mark

0

更改下面的代碼

App :: import('Helper','Form');

$ form = new FormHelper();

到該下面的代碼

應用::進口( '幫助器', '表');

$ form = new FormHelper(new View());

然後使用$ form這樣$ form-> input('name');

你缺少(新景())