CodeIgniter嵌套的foreach不显示任何结果或错误


CodeIgniter nested foreach shows nothing as a result or error

我正在用CodeIgniter构建一个应用程序。我有一种情况,我需要显示每次旅行的用户提交的图像。图像被上传,但当轮到显示它们时,我的前臂不会显示任何内容。你能帮我应付这种情况吗?这是我的观点:

    <?php
    if(count($photos) > 0) {
    foreach($photos as $photo_strip){ ?>
    <div>
    <span class="title"><?= $photo_strip['trip']->title ?></span>
    <span class="upload" data-id="<?= $photo_strip['trip']->id ?>">Upload Photos</span>
    <div class="image-box">
    <ul>
    <?php
    foreach($photo_strip['photos'] as $photo) { ?>
    <li>
    <img src="<?= $photo->image ?>" alt=""/>
    </li>
    <?php } ?>
    </ul>
    </div>
    <?php } ?>
    <?php } else { ?>
    <div class="content">
            <div class="no-data">
                No Images Uploaded Yet
            </div>
        </div>
    <?php } ?>

当我print_r($trip_section);时,它会显示整个数组,但当我在第二个foreach循环中执行相同的print_rvar_dump时,它什么都不显示,整个部分都是空白的。我做错什么了吗?我还有别的办法吗?非常感谢。

这是两个数组的var_dump:$photos:

array(1) { [0]=> array(3) { ["trip"]=> object(stdClass)#52 (28) { ["id"]=> string(1) "2" 
["title"]=> string(23) "My Beach Trip" 
["image"]=> string(36) "5D2EEC96513F83C760A4EEF2DFF637CA.jpg" 
["thumbnail"]=> string(36) "A4786CA32EE9D2E3FB05B7A58C577B68.jpg" ["type"]=> string(4) "trip" 
["country"]=> string(1) "1" ["city"]=> string(1) "1" ["status"]=> string(1) "1" 
["featured"]=> string(1) "0" ["venue"]=> string(34) "cleansing" ["description"]=> string(475) "my dicription" 
["vacancy"]=> string(1) "7" ["minimum_attendee"]=> string(1) "2" ["map_link"]=> string(0) "" 
["internal_status"]=> string(1) "2" 
["price"]=> string(3) "105" 
["slug"]=> string(23) "my-trip" ["start_time"]=> string(8) "00:00:00" 
["end_time"]=> string(8) "00:00:00" ["timezone"]=> string(1) "0" 
["trip_date"]=> string(19) "0000-00-00 00:00:00" 
["create_date"]=> string(19) "2015-10-14 04:09:22" ["modify_date"]=> string(19) "2015-10-28 14:32:35" ["supplier_id"]=> string(1) "2" ["cancellation_policy"]=> string(2) "24" ["lat_long"]=> string(30) "(30.160477, 10.20730500000002)" 
["countryName"]=> string(20) "My country" 
["cityName"]=> string(5) "my city" } 
["photos"]=> array(0) { } 
["trip_date"]=> object(stdClass)#53 (5) { ["id"]=> string(2) "23" 
["tid"]=> string(1) "2" ["start_time"]=> string(8) "15:00:00" 
["end_time"]=> string(8) "19:30:00" 
["trip_date"]=> string(19) "2015-10-22 00:00:00" } } } 

array(3) { ["trip"]=> object(stdClass)#52 (28) { 
["id"]=> string(1) "2" ["title"]=> string(23) "My trip" 
["image"]=> string(36) "5D2EEC96513F83C760A4EEF2DFF637CA.jpg" 
["thumbnail"]=> string(36) "A4786CA32EE9D2E3FB05B7A58C577B68.jpg" 
["type"]=> string(4) "tour" ["country"]=> string(1) "1"
["city"]=> string(1) "1" ["status"]=> string(1) "1" 
["featured"]=> string(1) "0" ["venue"]=> string(34) "cleansing" 
["description"]=> string(475) "my description" 
["vacancy"]=> string(1) "7" ["minimum_attendee"]=> string(1) "2" 
["map_link"]=> string(0) "" ["internal_status"]=> string(1) "2" 
["price"]=> string(3) "105" ["slug"]=> string(23) "my-trip" 
["start_time"]=> string(8) "00:00:00" 
["end_time"]=> string(8) "00:00:00" ["timezone"]=> string(1) "0" 
["tour_date"]=> string(19) "0000-00-00 00:00:00" 
["create_date"]=> string(19) "2015-10-14 04:09:22" 
["modify_date"]=> string(19) "2015-10-28 14:32:35" ["supplier_id"]=> string(1) "2" 
["cancellation_policy"]=> string(2) "24" ["lat_long"]=> string(30) "(30.160477, 10.20730500000002)" 
["countryName"]=> string(20) "My country" 
["cityName"]=> string(5) "my city" } 
["photos"]=> array(0) { } ["tour_date"]=> object(stdClass)#53 (5) { 
["id"]=> string(2) "23" ["tid"]=> string(1) "2" 
["start_time"]=> string(8) "15:00:00" ["end_time"]=> string(8) "19:30:00" 
["trip_date"]=> string(19) "2015-10-22 00:00:00" } }

在http://phpfiddle.org/以帮助调试代码。我怀疑你的数组不是按照你的想法构建的。看不到$photos$photo_strip的实际var_dump,我真的无法再参与进来了。这与代码点火器无关。

<?php
            $photos = array(array("trip" => (object)array("title"=>"Beach", "id"=>1), "photos" => array((object)array("image"=>"http://placehold.it/350x150"))));
            if(count($photos) > 0) {
            foreach($photos as $photo_strip){ ?>
            <div>
            <span class="title"><?= $photo_strip['trip']->title ?></span>
            <span class="upload" data-id="<?= $photo_strip['trip']->id ?>">Upload Photos</span>
            <div class="image-box">
            <ul>
            <?php
            foreach($photo_strip['photos'] as $photo) { ?>
            <li>
            <img src="<?= $photo->image ?>" alt=""/>
            </li>
            <?php } ?>
            </ul>
            </div>
            <?php } ?>
            <?php } else { ?>
            <div class="content">
                    <div class="no-data">
                        No Images Uploaded Yet
                    </div>
                </div>
            <?php } ?>

编辑:

好的,看看你的var_dump,注意["photos"]=> array(0) { }您的照片阵列为空。所以基本上foreach($photo_strip['photos'] as $photo)什么都不做,因为他们没有照片。此代码按预期工作;如果你有照片,它们就会被展示出来。你的问题可能又回到了你添加照片的控制器或模型上。若要调试,请手动将一些照片添加到照片阵列中,并查看它是否显示在您的视图中。完成后,再想办法正确地系好所有的东西。