我是 OOP 和 MVC 的新手,目前正在使用 CodeIgniter 构建网站。
关于循环是否应该在视图或模型中似乎有很多对比信息。
一方面,我试图将所有的 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>';
}
}