我是Zend Framework的新手,希望瞭解如何最好地循環訪問數據庫數據以生成鏈接列表。我的理解是,模型應該包含大部分應用程序邏輯,控制器和視圖儘可能輕。Zend Framework在循環中生成HTML標記
我在查詢數據庫以獲取一組記錄,我想遍歷它們並生成HTML鏈接。下面的Psuedocode。
控制器:
$this->view->myList = MODEL->generateHtml();
MODEL:
function generateHtml() {
query db
loop through record set
build a string of html within loop including links
return string to controller
}
VIEW:
echo $this->myList;
這似乎把邏輯在模型中,讓控制器保持亮起狀態,並使視圖僅用於渲染。
我遇到的一個問題是,我想用$this->view->url
在html I輸出中生成路由鏈接,但在模型中不能這樣做。我在網上完成的閱讀表明你不應該在模型中構建html。我可以在模型中生成所需數據的數組並返回,然後在控制器或視圖中循環,以生成html,但我不確定什麼是正確的方法,並希望得到一些建議。
感謝您給予的任何幫助。
新的問題 - 更新的代碼:
嗨再次....低於疲憊的建議,但現在有一個不同的問題。
我的代碼是現在:
MODEL:
不使用此測試。將返回類似於在控制器中創建的數組的數組。
CONTROLLER:
$aStoryList = array(
array(
'headline' => 'Headline 1',
'story' => 'Story 1'
),
array(
'headline' => 'Headline 2',
'story' => 'Story 2'
)
);
$this->view->aStoryList = $aStoryList;
VIEW:
echo $this->partialLoop('partials/storyList.phtml', $this->aStoryList);
storyList.phtml:
echo "<br />" . $this->headline . $this->story;
我已經放置在局部從而....
視圖/分音/storyList.phtml
這種放置,並在視圖中使用的路徑是從應答所得出這個計算器的問題 - Where do I save partial (views) in Zend Framework, to be accessible for all Views in my App?
當我運行此我得到以下錯誤
消息:腳本「的諧音/ storyList.phtml '找不到路徑(/ home/sites/xxxxx。com/public_html/xxxxxxx/application/views/scripts /)
現在拉出我的頭髮!
你可以在另一個partialLoop中調用partialLoop嗎?另一件事(雖然我不確定)不使用局部視圖助手對性能不好,而應該使用'render'來代替? – Songo
嗨 - 非常感謝您抽出寶貴的時間撰寫詳細的信息。我沒有聽說過partialloop視圖幫手,但會看看。看看你的僞代碼,它看起來正是我想要的。真的很感謝你的努力 - 歡呼聲(stackoverflow不會讓我投你的答案,因爲我是新的,但真的很欣賞你的努力) – slip0000
@Songo從查看「partial」和「partialLoop」的代碼,我沒有看到任何你不能從另一個「partialLoop」中調用partialLoop的原因(只要你不通過傳遞相同的數據讓自己進入遞歸空洞)。「partialLoop」可能會調用「partial」,它會克隆你的視圖對象,清除它的變量,並將部分變量賦值給它,然後在克隆的視圖上調用render()並返回內容。在比較partialLoop vs loop和view render時看到一些基準可能會很有趣。 – drew010