私は OOP と MVC が初めてで、現在 CodeIgniter を使用して Web サイトを構築しています。
ループがビューにあるべきか、モデルにあるべきかについて、多くの対照的な情報があるようです。
一方で、すべての HTML マークアップをビュー内に保持しようとしていますが、他方では、乱雑な PHP ロジックをビューの外に保持したいと考えています。さらに、モデルにある関数を使用して、ループ内のデータをフォーマットする必要もあります。
これを整理するための最良の方法は何ですか?
これが私の現在の実装の簡略化されたバージョンです:
意見
<section>
<ul>
<?php echo $albumTracklistHtml ?>
</ul>
</section>
コントローラ
$data = [
'$albumTracklistHtml' => $this->MyModel->getAlbumTracklistHtml()
];
$this->load->view('myPage', $data);
モデル
public function getAlbumTracklistHtml()
{
//$this->tracklisting returned from db call in other function
foreach($this->tracklisting as $song) {
$mp3 = $this->convertToAmazonUrl($song['mp3']);
$art = $this->formatArtUrl($song['art']);
$name = $this->formatTrackName($song['name']);
$class = 'mp3';
$btn ='';
if(substr($name, 0, 1) == '*') {
$class = 'load mp3';
$btn = '<span class="playBtn"></span>';
}
<li class="'.$class.'" '.$mp3.'>'.$btn.$name.'</li>';
}
}