我创建了一个Helper文件来加载页面上的常用模块。这样做的想法是,在我的控制器中,我将一个模块数组传递给一个函数,并将它们加载到视图中。我通过在帮助文件中声明html来完成这项工作。我现在已经将html保存为视图,但是当试图将帮助器中的变量传递给视图时,我得到了未定义的变量错误。
我的助手:
if (!function_exists('twitter_feed'))
{
function twitter_feed( $user = False, $count = 3 )
{
$ci=& get_instance();
$ci->load->database();
if ( $user === FALSE ) {
$query = $ci->db->limit($count)->order_by( 'DATETIME_STAMP', 'DESC' )->get( 'twitter_feed' );
$data['result'] = $query->result_array();
} else {
$query = $ci->db->limit($count)->order_by( 'DATETIME_STAMP', 'DESC' )->get_where( 'twitter_feed', array( 'SCREEN_NAME' => $user ) );
$data['result'] = $query->result_array();
}
$feed = $ci->load->view('modules/twitter_feed', $data['result'], true);
return $feed;
}
}
我的观点
<section class="sponsor-section">
<div class="container">
<div class="row">
<div class="col-sm-12">
<div class="sponsor " >
<h2 class="heading"><strong>Avid Carper's</strong> Tweets</h2>
<?php
foreach ($result as $tweet) { ?>
<div class="col-sm-4 ">
<div class="tweet">
<img src="<?=$tweet['PROFILE_IMAGE']?>" alt=""/>
<p><strong><?=$tweet['DISPLAY_NAME']?></strong> <br><a href="https://twitter.com/<?=$tweet['SCREEN_NAME']?>/status/<?=$tweet['TWEET_ID']?>" target="_blank"><?=$tweet['DATETIME_STAMP']?></a><br>
<a href="https://twitter.com/<?=$tweet['SCREEN_NAME']?>" target="_blank"><span class="tw-user">@<?=$tweet['SCREEN_NAME']?></span></a>
<p class="tweet1"><?=$tweet['TWEET']?></p>
<p><a href="https://twitter.com/intent/tweet?in_reply_to=<?=$tweet['TWEET_ID']?>"><i class="fa fa-twitter"></i> Tweet this</a></p>
</div>
</div>
<?php } ?>
</div>
</div>
</div>
</div>
</section>
如果我使用get_defined_vars(),我可以看到信息存在,但我能看到访问它们的唯一方法是使用$ _ci_data [&#39; _ci_vars&#39;],就像我在下面的视图中一样。< / p>
<section class="sponsor-section">
<div class="container">
<div class="row">
<div class="col-sm-12">
<div class="sponsor " >
<h2 class="heading"><strong>Avid Carper's</strong> Tweets</h2>
<?php
foreach ($_ci_data['_ci_vars'] as $tweet) { ?>
<div class="col-sm-4 ">
<div class="tweet">
<img src="<?=$tweet['PROFILE_IMAGE']?>" alt=""/>
<p><strong><?=$tweet['DISPLAY_NAME']?></strong> <br><a href="https://twitter.com/<?=$tweet['SCREEN_NAME']?>/status/<?=$tweet['TWEET_ID']?>" target="_blank"><?=$tweet['DATETIME_STAMP']?></a><br>
<a href="https://twitter.com/<?=$tweet['SCREEN_NAME']?>" target="_blank"><span class="tw-user">@<?=$tweet['SCREEN_NAME']?></span></a>
<p class="tweet1"><?=$tweet['TWEET']?></p>
<p><a href="https://twitter.com/intent/tweet?in_reply_to=<?=$tweet['TWEET_ID']?>"><i class="fa fa-twitter"></i> Tweet this</a></p>
</div>
</div>
<?php } ?>
</div>
</div>
</div>
</div>
</section>
有更好的方法吗?正如我所说的那样,我正在从帮助器加载视图以整理我的控制器,因为这些模块是“块”。在布局中。