错误消息不断回来说没有定义数组。

时间:2011-11-25 19:40:42

标签: php codeigniter

我正在使用Codeigniter开发网站。结构网站很简单,我在模型中有动态菜单和内容检索DB。然后分配一个方法在Controller中调用它们。

我有一个奇怪的错误信息不断回来说数组没有定义。

我可以获得tabPhotos,它包含数据。 查看:

<div id="container">
    <div id="photos">
        <?php echo "Count: ". count($tabPhotos); ?>
        <ul>
            <?php if (!is_array($tabPhotos) || empty($tabPhotos)) :?>
                <?php return null; ?>

                <?php foreach ($tabPhotos as $item) : ?>
                    <?php echo "Model: " . $item->url; ?>                   
                <?php endforeach; ?>
            <?php endif; ?>
        </ul>
    </div>
</div>

控制器:

public function loadMenu($file) {
    $data['tabMenuItems'] = $this->qdphoto_model->getAllMenuItems();
    $this->load->view($file, $data);    
}


public function loadCategoryPage($file, $category='Book 1') {
    $data['tabPhotos'] = $this->qdphoto_model->getAllPicturesByCategory($category, 'url, model');

    $this->load->view($file, $data);        
}

1 个答案:

答案 0 :(得分:0)

我是否正确阅读?如果$ tabPhotos不是一个数组或它是,它恰好是EMPTY然后返回null并继续运行foreach循环与神秘的endif跟随?

        <?php if (!is_array($tabPhotos) || empty($tabPhotos)) :?>
            <?php return null; ?>

            <?php foreach ($tabPhotos as $item) : ?>
                <?php echo "Model: " . $item->url; ?>                   
            <?php endforeach; ?>
        <?php endif; ?>

不应该读到这个:

       <?php if (is_array($tabPhotos) && !empty($tabPhotos)) :?>
            <?php foreach ($tabPhotos as $item) : ?>
                <?php echo "Model: " . $item->url; ?>                   
            <?php endforeach; ?>
        <?php endif; ?>

不需要返回null语句。

另外,我相信你可以将视图作为字符串返回。如果要加载多个视图,您当然可以将视图的任何片段加载为字符串...

$string = $this->load->view($file, $data, true);

请注意,您应该查看以下内容: http://codeigniter.com/user_guide/general/views.html

见底部。它说如何作为字符串返回,除了由于自定义控制器等我习惯于稍微不同的语法。也许我提供的这个例子并不准确。