Bonjour,
j'ai 3 table reservation et bien et personne. chaque reservation a un bien et le personne a plusieurs biens . je veux afficher tout les reservations de ce personne mais il m'affiche seulement la derniere ligne.
Dans le controller

public function index_hote() {
        $this->Reservation->recursive = 1;
        $this->loadModel("BiensPersonne");
   if($this->Session->read('Auth.User.0.Personne.id')){
            $options = $this->BiensPersonne->findByPersonneId($this->Session->read('Auth.User.0.Personne.id')); 
$this->loadModel("Personne");
$biens=$this->Personne->findById( $options['BiensPersonne']['personne_id']);
foreach ($biens['Bien'] as $bien) {
 $reservations=$this->Reservation->find('all',array('conditions'=>array('Reservation.idBien'=> $bien['idBien'])));
$this->paginate('Reservation');
$this->set('reservations', $reservations);
    }}} ```

Dans le Model reservation

public $belongsTo = array(
        'Personne' => array(
            'className' => 'Personne',
            'foreignKey' => 'id',
            'conditions' => '',
            'fields' => '',
            'order' => ''),
        'Bien' => array(
            'className' => 'Bien',
            'foreignKey' => 'idBien',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        )
    );```

Dans Model Bien

public $hasMany = array(
    'Reservation' => array(
            'className' => 'Reservation',
            'foreignKey' => 'idBien',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        ),
        'BiensPersonne' 
    ); ```

Dans view

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

qu'est ce que je dois faire pour avoir les reservations de chaque personne ?

3 réponses


wah
Auteur
Réponse acceptée

lorsque je fais Debugger::dump($reservations);

array(
    (int) 0 => array(
        'Reservation' => array(
            'idReser' => '1',
            'dateReserDu' => '2016-04-23',
            'dateReserAu' => '2016-04-27',
            'montantAPaye' => '500',
            'etatReservation' => 'Reserve',
            'iddev' => '0',
            'idBien' => '9',
            'id' => '24'
        ),
        'Personne' => array(
            'login' => '*****',
            'id' => '24',
            'designation' => 'client',
            'nom' => 'mohamed',
            'prenom' => 'jmaa',
            'dateNaiss' => '1991-07-22',
            'adresse' => 'rue paris',
            'telFixe' => '26119945',
            'telMobile1' => '95632114',
            'telMobile2' => '98745213',
            'email' => 'wahibaml@gmail.com',
            'mdp' => '26111991',
            'lienPhotoPersonnel' => 'sou.jpg',
            'idVille' => '14'
        ),
        'Device' => array(
            'iddev' => null,
            'nomdev' => null,
            'logodev' => null,
            'coefficient' => null
        ),
        'Bien' => array(
            'idBien' => '9',
            'designBien' => 'Petit coeur a TUNIS ville',
            'aPropos' => 'De Host � Milan tres apprecie, avec environ 700 re positifs me trouver en Tunisie quelques jours par mois. Je lai choisi, ici aussi, d'avoir ma maison ou trouver ma souffrance et mes souvenirs. Les couleurs et les objets mediterraneens trouve et rec',
            'capaciteAccueil' => '3',
            'nbSalleBain' => '1',
            'nbChambre' => '2',
            'nbLits' => '3',
            'description' => 'De Host a Milan beaucoup apprecie, avec environ 700 commentaires positifs � cinq �toiles, meme ici en Tunisie, je tiens � apporter mon exp�rience fantastique.
Comme un architecte italien souvent je voyage pour mon travail et je me trouve en Tunisie quelques jours par mois. Je l'ai choisi, ici aussi, d'avoir ma maison o� trouver ma souffrance et mes souvenirs.
Les couleurs et les objets de la M�diterran�e fond�e et recueillies, un peu de conception, ils le font � moi ',
            'adresse' => 'rue ladikiya',
            'immeuble' => '',
            'affichable' => false,
            'affichablePageAccueil' => false,
            'idtypelogement' => '1',
            'idVille' => '14',
            'idPays' => '1',
            'idTypeBien' => '2',
            'posLat' => '36.8065',
            'posLong' => '10.1815'
        )
    )
)

array(
    (int) 0 => array(
        'Reservation' => array(
            'idReser' => '2',
            'dateReserDu' => '2016-04-07',
            'dateReserAu' => '2016-04-20',
            'montantAPaye' => '500',
            'etatReservation' => 'attente',
            'iddev' => '0',
            'idBien' => '22',
            'id' => '24'
        ),
        'Personne' => array(
            'login' => '*****',
            'id' => '24',
            'designation' => 'client',
            'nom' => 'mohamed',
            'prenom' => 'jmaa',
            'dateNaiss' => '1991-07-22',
            'adresse' => 'rue paris',
            'telFixe' => '26119945',
            'telMobile1' => '95632114',
            'telMobile2' => '98745213',
            'email' => 'wahibaml@gmail.com',
            'mdp' => '26111991',
            'lienPhotoPersonnel' => 'sou.jpg',
            'idVille' => '14'
        ),
        'Device' => array(
            'iddev' => null,
            'nomdev' => null,
            'logodev' => null,
            'coefficient' => null
        ),
        'Bien' => array(
            'idBien' => '22',
            'designBien' => 'appartement',
            'aPropos' => 'grand appartement',
            'capaciteAccueil' => '2',
            'nbSalleBain' => '1',
            'nbChambre' => '2',
            'nbLits' => '2',
            'description' => 'grand appartement',
            'adresse' => 'ruen marsa',
            'immeuble' => '',
            'affichable' => false,
            'affichablePageAccueil' => false,
            'idtypelogement' => '1',
            'idVille' => '1',
            'idPays' => '1',
            'idTypeBien' => '1',
            'posLat' => '0',
            'posLong' => '0'
        )
    )
) ```
Lartak
Réponse acceptée

Bonjour.
C'est normal que ça ne fonctionne pas, tu définis plusieurs fois la variable $reservations dans l'action de ton controller.

wah
Auteur

comment je doit faire pour avoir les reservations d'uh personne à partir de tous les biens