我有一个函数,我想插入一个视图文件。当你需要echo
一两件事时,这很简单,但是我有一些复杂的html,所以想利用替代的php语法来进行下面的foreach循环和if语句:
更新我根据tpaksu的建议更正了CI->load->view
以包含第3个参数。它更接近工作但仍然不太正确。请参阅以下代码中的注释:
<?
function displayComments(array $comments, $parentId = null) {
$CI=& get_instance();
foreach($comments as $comment){
if($comment['replied_to_id'] == $parentId){
echo $CI->load->view('reviews/comment_list', $comments, true); // this doesn't work, it only shows the last array member
// echo $comment['comment']; this works as expected
}
}
}
displayComments($comments, $parentId = null);
?>
以下是'评论/评论列表视图文件的最简单形式:
<ul>
<? foreach($comments as $comment): $comment=$comment['comment']?>
<li>
<?echo $comment?>
</li>
<?endforeach;>
</ul>
有人知道如何将视图文件嵌入到函数中吗?
答案 0 :(得分:1)
您在第一个文件中的内容:
<?php
$CI=& get_instance();
echo $CI->load->view('reviews/comment_list', $comments, true);
?>
reviews/comment_list
视图:
<ul>
<?php
foreach($comments as $comment){
$comment=$comment['comment'];
echo "<li>" . $comment . "</li>";
}
?>
</ul>
只需写下来再试一次。
答案 1 :(得分:1)
我通常会在项目中使用 snippet_helper 。在那里,我有许多函数可以生成大量可重用的东西(也称为 modules 或 components )。
我也喜欢WordPress方法,用于在主函数中返回数据(在显示之前可能需要更多处理)和“姐妹函数”直接echo
结果。
我认为这对你有用。例如:
function get_display_comments(array $comments, $parentId = NULL)
{
$CI =& get_instance();
$return = '';
foreach ($comments AS $comment)
{
if ($comment['replied_to_id'] == $parentId)
{
$return .= $CI->load->view('reviews/comment_list', $comments, TRUE);
}
}
return $return;
}
function display_comments(array $comments, $parentId = NULL)
{
echo get_display_comments($comments, $parentId);
}