这两行代码专门 - ($ teamproject as $ teamproject)和($ cattypes as $ teamproject)。基本上它是一个显示catergory(cattypes)和主图像以及特定图像卡标题的图像卡。
<div class="container" id="projectcards">
<div class="row">
<?php
if(!empty($error)){
echo $error;
}
if (!empty($teamproject)) {
foreach ($teamproject as $teamproject): ?>
<a href="/project-single/1" class="col-md-6 col-sm-6 col-xs-12 thumbnailx">
<?php foreach ($cattypes as $teamproject): ?>
<h4 class="post-content"><?= h($teamproject->cattype_title)?></h4>
<?php endforeach; ?>
<img src="<?= h($teamproject->mainimg)?>">
<h3><?= h($teamproject->title)?></h3>
</a>
<?php
endforeach;
}
?>
</div>
</div>
答案 0 :(得分:1)
你误解了foreach如何在PHP中运行。第一个项应该是一个数组的名称,它将迭代,第二个项目应该是你想要调用每个项目。这句话:
foreach ($teamproject as $teamproject):
不应该两次列出相同的变量。
如果它只是一个实体,请不要迭代它,只需直接访问它的值。
如果它是一个包含teamproject实体列表的数组,那么只需为该项指定foreach循环的唯一名称:
foreach ($teamproject as $project)
第二个嵌套的foreach-如果这应该是每个特定团队项目的标题列表,那么它可能应该是单个$ project实体中的列表?正如您所写的那样,它只是迭代$ cattypes数组,并且在每次迭代时,一遍又一遍地打印相同的$ project标题。
如果cattypes应该是每个$项目的列表,那么它的含义模糊不清:
foreach($project->cattypes as $cattype)
更换&#34; cattypes&#34;在您的teamproject实体上实际调用了该列表。
答案 1 :(得分:0)
我不得不添加foreach条件,而是必须添加IF条件才能使其正常工作。
<div class="container" id="projectcards">
<div class="row">
<?php
if (!empty($teamproject)) {
foreach ($teamproject as $team): ?>
<a href="/projects-single/<?= h($team->id)?>" class="col-md-6 col-sm-6 col-xs-12 thumbnailx">
<?php foreach ($cattypes as $cattype):
if ($team->cattype_id == $cattype->id ) {
?>
<h4 class="post-content"><?= h($cattype->title)?></h4>
<?php
} endforeach; ?>
<img src="<?= h($team->mainimg)?>">
<h3><?= h($team->title)?></h3>
</a>
<?php
endforeach;
}
?>
</div>