我正在用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_r
或var_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)
什么都不做,因为他们没有照片。此代码按预期工作;如果你有照片,它们就会被展示出来。你的问题可能又回到了你添加照片的控制器或模型上。若要调试,请手动将一些照片添加到照片阵列中,并查看它是否显示在您的视图中。完成后,再想办法正确地系好所有的东西。