从助手到视图的CI通过变量

时间:2014-12-05 10:07:00

标签: php codeigniter templates helper

我创建了一个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>

有更好的方法吗?正如我所说的那样,我正在从帮助器加载视图以整理我的控制器,因为这些模块是“块”。在布局中。

0 个答案:

没有答案