0

私のコントローラー コードは、同じデータのコピーを 10 個生成するだけです。そして、データをarray.Controllerコードの配列に入れました:

for($i=0;$i < $this->per_page;$i++)
{
    $temp['title'] = "test";
    $temp['link'] = "localhost/cib/index.php";
    $temp['month'] = '4';
    $temp['day'] = '21';
    $temp['authorlink'] = "localhost/cib/index.php/author";
    $temp['author'] = "Charles";
    $temp['content'] = "tetestersafaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    $results[] = $temp;
}

$data['main_content'] = 'report_list';
$data['posts'] = $results;

$this->load->view('include/templates', $data);

そして、コントローラーによって生成されたデータをビュー ページ report_list に表示します。report_list のコードは次のとおりです。

<div id="bg_top">
</div>
<div class = "container" id="content">
    <div class="row-fluid">
        <div class="span9" id="content_left">
        <h2>解题报告列表</h2>
        <link href="<?php echo base_url('assets/css/style.css') ?>" rel="stylesheet">
        <?php if(!empty($posts) && is_array($posts)):?>
            <?php foreach($posts as $post):?>
                <div class="entry">
                    <h2 class="entrytitle"><?php echo anchor($post->link, $post->title)?><span></span></h2>
                    <div class="entrymeta1"> 
                        <div class="meta-date">
                            <span class="meta-month"><?php echo $post->month?></span>
                            <span class="meta-day"><?php echo $post->day?></span>
                        </div>
                        <span class="meta-author"><?php echo anchor($post->authorlink, $post->author)?></span>
                        <span class="meta-category"></span>
                        <span class="meta-comment"></span>
                        <div class="clear"></div>
                        </div><!-- [entrymeta1] -->
                    <div class="entrybody">
                        <p><?php echo $post->content;?><?php echo anchor($post->link, '阅读全文')?></p>
                    </div>
                    <div class="entrymeta3">
                    </div>
                </div><!-- [entry] -->
        <?php endforeach;?>
    <?php endif;?>
        </div>
        <div class="span3">
        <?php echo "hello world2";?>
        </div>
    </div>
</div>

問題は、どこが間違っているかです。「オブジェクト以外のプロパティを取得しようとしています」というエラーが発生するのはなぜですか? コントローラーでデータを印刷しようとしましたが、非常にうまく機能します。

foreach($results as $post)
{
    foreach($post as $key=>$value)
    {
        echo $key.':'.$value;
        echo '<br/>';
    }
}
4

3 に答える 3

1

次のように、ビュー ファイル内の変数を配列スタイルで出力する必要があります。

<?php echo anchor($post['link'], $post['title'])?>

それでも、いつでも配列を印刷して構造を表示できます。

<?php echo "<pre>";print_r($posts);echo "</pre>";
于 2013-06-27T05:55:42.323 に答える
0

すべての変数$post->linkを配列$post['link']に変更します

$post->month
$post->day

テンプレートで使用しているすべてのフィールド。

于 2013-06-27T03:44:11.607 に答える
0

私の仮定は

オブジェクトの配列として $posts を期待しています。しかし、一部のローアクションの $posts には、月、日などのプロパティを持つオブジェクトがありません。そのため、for ループの直前に $posts のタイプを調べる必要があります。

var_dump($posts)

これにより、エラーに関する明確な画像が得られます

于 2013-06-27T03:35:10.830 に答える