Bonjour à tous,
j’essaye de faire un double foreach sur mon site, seulement ce double foreach m'affiche deux fois les informations.
Sur ma fonction je passe deux tableaux :
$d'variable1'] = $this->Model1->find('all');
$d'variable2'] = $this->Model2->find('all');
$this->set($d);
dans mu vue je fais mon double foreach :
<?php foreach ($variable1 as $v): ?>
<?php foreach ($variable2 as $k): ?>
<?php if($k'Model2']'id'] == $v'Model1']'id']): ?>
<?php echo $v'Model1']'name']; ?></p>
<?php else: ?>
<?php echo 'A venir'; ?></p>
<?php endif; ?>
<?php endforeach; ?>
<?php endforeach; ?>
Dans ce cas, il liste la variable1 et il liste aussi la variable2 qui normalement doit remplacer ceux qui correspondent à la variable1.
Merci.....
Bonjour,
Qu'est ce que contiennent tes tableaux ? Le problème vient peut-être de leurs structures...
Bonjour Shadow,
Merci de ton aide, j'ai tellement essayé de facon différente que je n'y arrive plus.
Voici mon debug :
Ma fonction dans mon controller UsersController.php :
function badge(){
$this->loadModel('BadgeUser');
$this->BadgeUser->contain('Badge','User');
$d'badgesusers'] = $this->BadgeUser->find('all');
$d'badges'] = $this->BadgeUser->Badge->find('all');
$this->set($d);
ma vue badge.ctp
<?php foreach ($badges as $k => $v): ?>
<?php foreach ($badgesusers as $kk => $vv): ?>
<?php if($vv'BadgeUser']'badge_id'] == $v'Badge']"id"]): ?>
<div class="badges">
<p class="badgeTitle bebas textcenter"><?php echo $v'Badge']'name']; ?></p>
<img src="<?php echo $v'Badge']'url_image']; ?>">
<p class="badgeText textcenter"><?php echo $v'Badge']'content']; ?></p>
</div>
<?php else: ?>
<div class="badges">
<p class="badgeTitle bebas textcenter"><?php echo $v'Badge']'name']; ?></p>
<img src="/img/badges/badge0.png">
<p class="badgeText textcenter"><?php echo $v'Badge']'content']; ?></p>
</div>
<?php endif; ?>
<?php endforeach; ?>
<?php endforeach; ?>
et le debug des tableaux :
app/Controller/UsersController.php (line 157)
array(
'badgesusers' => array(
(int) 0 => array(
'BadgeUser' => array(
'id' => '1',
'badge_id' => '1',
'user_id' => '1'
),
'User' => array(
'id' => '1',
'username' => 'truc',
'mail' => 'truc@gmail.com',
'role' => 'admin',
),
'Badge' => array(
'id' => '1',
'name' => 'badge1',
'content' => 'avoir le badge1',
'url_image' => '/img/badges/badge1.png'
)
),
(int) 1 => array(
'BadgeUser' => array(
'id' => '2',
'badge_id' => '2',
'user_id' => '1'
),
'User' => array(
'id' => '1',
'username' => 'truc',
'mail' => 'truc@gmail.com',
'role' => 'admin',
),
'Badge' => array(
'id' => '2',
'name' => 'badge2',
'content' => 'avoir le badge2',
'url_image' => '/img/badges/badge2.png'
)
)
),
'badges' => array(
(int) 0 => array(
'Badge' => array(
'id' => '1',
'name' => 'badge1',
'content' => 'avoir le badge1',
'url_image' => '/img/badges/badge1.png'
)
),
(int) 1 => array(
'Badge' => array(
'id' => '2',
'name' => 'badge2',
'content' => 'avoir le badge2',
'url_image' => '/img/badges/badge2.png'
)
),
(int) 2 => array(
'Badge' => array(
'id' => '3',
'name' => 'badge3',
'content' => 'avoir le badge3',
'url_image' => '/img/badges/badge3.png'
)
)
)
)