Zend Framework を初めて使用するので、データベース データをループしてリンクのリストを生成する最善の方法についてアドバイスをお願いします。私の理解では、モデルにはアプリケーションロジックのほとんどを含め、コントローラーとビューをできるだけ軽量にする必要があります。
データベースにクエリを実行して一連のレコードを取得しています。それらをループして HTML リンクを生成したいと考えています。以下の疑似コード。
コントローラ:
$this->view->myList = MODEL->generateHtml();
モデル:
function generateHtml() {
query db
loop through record set
build a string of html within loop including links
return string to controller
}
見る:
echo $this->myList;
これはロジックをモデルに入れ、コントローラーのライトとビューをレンダリング専用のままにしているようです。
私が抱えている問題の 1 つは、出力した html でルーティング リンクを生成するために使用したいのです$this->view->url
が、モデルではそれができないことです。私がオンラインで行った読書は、モデルでhtmlを構築するべきではないことを示唆しています。モデルで必要なデータの配列を生成し、それを返し、コントローラーまたはビューでそれをループして html を生成することができますが、正しいアプローチが何であるかについては不明であり、アドバイスをいただければ幸いです。
助けてくれてありがとう。
新しい問題 - 更新されたコード:
こんにちは....以下の提案にうんざりしていますが、今は別の問題があります。
私のコードは次のとおりです。
モデル:
このテストには使用しません。コントローラーで作成された配列と同様の配列を返します。
コントローラ:
$aStoryList = array(
array(
'headline' => 'Headline 1',
'story' => 'Story 1'
),
array(
'headline' => 'Headline 2',
'story' => 'Story 2'
)
);
$this->view->aStoryList = $aStoryList;
見る:
echo $this->partialLoop('partials/storyList.phtml', $this->aStoryList);
storyList.phtml:
echo "<br />" . $this->headline . $this->story;
このようにパーシャルを配置しました....
ビュー/部分/storyList.phtml
この配置とビューで使用されるパスは、このスタックオーバーフローの質問への回答から派生したものです - Zend Framework の部分 (ビュー) をどこに保存すれば、アプリ内のすべてのビューにアクセスできるようになりますか?
これを実行すると、次のエラーが表示されます
メッセージ: パス (/home/sites/xxxxx.com/public_html/xxxxxxx/application/views/scripts/) にスクリプト 'partials/storyList.phtml' が見つかりません
今、髪を抜いています!