2016-04-24 14 views
0

Als ich foreach verwenden, um die meinen Wert in der Basis zu zeigen, zeigen sie mir einen falschen Wert in der Steuerung:CakePHP foreach

public function index_hote() { 
    $this->Reservation->recursive = 1; 
    $this->loadModel("Bien"); 
    $biens=$this->Bien->find('first',array('conditions'=>array("Bien.idBien  =idBien"))); 
    $reservations=$this->Reservation- >find('first', 
    array('conditions'=>array('Reservation.idBien'=> $biens['Bien'] ['idBien']))); 
     Debugger::dump($reservations['Reservation']); 
    $this->paginate('Reservation'); 
    $this->set('reservations', $reservations['Reservation']); 

    } 

Nach Ansicht:

<?php foreach ($reservations as $reservation): ?> 
    <tr> 
    <?php echo h($reservation) ?> 
    <td><?php echo h($reservation['dateReserDu']); ?>&nbsp;</td> 
    <td><?php echo h($reservation['dateReserAu']); ?>&nbsp;</td> 
    <td><?php echo h($reservation['montantAPaye']); ?>&nbsp;</td> 
    <td><?php echo h($reservation['etatReservation']); ?>&nbsp;</td> 
     </tr> 
    <?php endforeach; ?> 

Wenn ich es debuggen zeigt mir den richtigen Wert (das Bild nach Debugger::dump($reservations['Reservation']); tun):

the pic after doing Debugger::dump($reservations['Reservation']);

aber es zeigt mir einen falschen Wert in der Tabelle:

pic of the false value

Wenn ich <?php echo h($reservation) ?> tue es zeigt mir den richtigen Wert, aber wenn ich ein Attribut wie h($reservation['dateReserDu']); ?> hinzufügen funktioniert es nicht PLZ warum? Und wann kann ich tun?

+0

Bitte zeigen Sie uns, was Sie gerade 'debug ($ Reservierung);' prost –

+0

array (' Reservierung '=> array (' idReser '=>' 1 ', ' dateReserDu '=>' 2016-04-23 ',' dateReserAu '=>' 2016-04-27 ', ' montantAPaye '=>' 500 ',' etatReservation '=>' Teilnehmer ', ' iddev '=>' 0 ',' idBien '=>' 9 ', ' id '=>' 24 '), \t 'Personne' => array ('login' => '*****', 'id' => '24', 'bezeichnung' => 'client', 'nom' => 'mohamed', ' prenom‘=> 'Jmaa', 'dateNaiss' => '1991.07.22', \t \t 'Adresse' => 'rue Paris', \t \t 'telFixe' => '26119945', \t \t 'telMobile1' => '95632114', \t \t 'telMobile2' => '98745213', \t \t 'E-Mail' => '[email protected]', \t \t 'MDP' => '26111991', \t \t 'lienPhotoPersonnel' => 'sou.jpg', \t \t 'idVille' => '14' \t), \t ) – wah

Antwort

1

Warum verwenden Sie Schleife hier? Sie haben find('first') verwendet, um eine Daten abzurufen, siehe doc.

Wenn Sie alle Daten abrufen möchten, verwenden Sie find('all'). Allerdings, wenn Sie Ihre Entdeckung ersten Daten echo wollen knapp unter Struktur verwenden

$this->set('reservations', $reservations); 

Im Hinblick

echo $reservations['Reservation']['Your_field_name'];

+0

wenn i $ Reservierungen do echo [ 'Reservierung'] [ 'Your_field_name']; Ich habe das gleiche Problem :( – wah

+0

Hast du $ this-> Set, das habe ich erwähnt? Und haben Sie foreach loop entfernen? –

+1

es funktioniert; D danke Ihnen: * – wah