IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

Afficher un autre champ d'une clé étrangère à partir d'une table dont elle est issue [CakePHP]


Sujet :

Bibliothèques et frameworks PHP

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Février 2008
    Messages : 154
    Par défaut Afficher un autre champ d'une clé étrangère à partir d'une table dont elle est issue
    Bonsoir cher tous,
    je manipule trois tables: Marchepublic, Bailleur et Marchefinancement qui sont liés selon le model:

    Marchefinancement Model
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
    App::uses('AppModel', 'Model');
    /**
     * Marchefinancement Model
     *
     * @property Marchepublic $Marchepublic
     * @property Bailleur $Bailleur
     */
    class Marchefinancement extends AppModel {
     
    /**
     * Display field
     *
     * @var string
     */
    	public $displayField = 'id';
     
     
    	//The Associations below have been created with all possible keys, those that are not needed can be removed
     
    /**
     * belongsTo associations
     *
     * @var array
     */
    	public $belongsTo = array(
    		'Marchepublic' => array(
    			'className' => 'Marchepublic',
    			'foreignKey' => 'marchepublic_id',
    			'conditions' => '',
    			'fields' => '',
    			'order' => ''
    		),
    		'Bailleur' => array(
    			'className' => 'Bailleur',
    			'foreignKey' => 'bailleur_id',
    			'conditions' => '',
    			'fields' => '',
    			'order' => ''
    		)
    	);
    }
    a partir de la vue du Marché, on peut ajouter un financement (Marchefinancement);
    pour cela, j'ai recuperé l'id du marché depuis la vue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php 
    	echo $this->Html->link("Financements", array('controller' => 'marchefinancements','action'=> 'add',
            $marchepublic['Marchepublic']['id']), array( 'class' => 'button'));
    ?>
    et je le gere dans la fonction add() de Marchefinancement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    public function add($id = null) {
    	if ($this->request->is('post')) {
    		$this->Marchefinancement->create();
    		if ($this->Marchefinancement->save($this->request->data)) {
    		    $this->Session->setFlash(__('The marchefinancement has been saved.'));
    				//return $this->redirect(array('action' => 'index'));				
    			} else {
    				$this->Session->setFlash(__('The marchefinancement could not be saved. Please, try again.'));
    			}
    		}
     
    		$marchepublics = $this->Marchefinancement->Marchepublic->find('list',array(
            'fields' => array('Marchepublic.objet'),
            'conditions' => array('Marchepublic.id =' => $id),
            'recursive' => 0
    		));
     
    		$montantmarche = $this->Marchefinancement->Marchepublic->find('list',array(
            'fields' => array('Marchepublic.montant'),
            'conditions' => array('Marchepublic.id =' => $id),
            'recursive' => 0
    		));
     
    		$bailleurs = $this->Marchefinancement->Bailleur->find('list');
     
    		$this->set(compact('marchepublics', 'bailleurs', 'montantmarche'));
     
    		$this->Paginator->settings = $this->paginate;
     
    		$this->set('marchefinancements', $this->Marchefinancement->find('all',array(
    		'conditions' => array('Marchepublic.id' => $id),
    		'recursive' => 0
    		))
    		, $this->paginate());
    	}
    sur la vue add des Marchefinancements, je veux ajouter de nouveaux financements et au fur et à mesure, s'affiche les lignes enregistrées sur la meme page.
    jusque là tout va bien...

    dans ma vue add:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <table cellpadding="0" cellspacing="0" border="0" class="responsive dynamicTable table table-bordered" width="100%" >
    	<thead>
    		<tr>
    		    <th>Bailleur</th>							
    		   <th>Taux</th>
    		   <th>Montant Bailleur</th>							
    		</tr>
    	</thead>
     
    	<tbody >
    		<?php foreach ($marchefinancements as $marchefinancement): ?>
    		<tr>
    			<td><?php echo h($marchefinancement['Marchefinancement']['bailleur_id']); ?>&nbsp;</td>
    			<td><?php echo h($marchefinancement['Marchefinancement']['taux']); ?>&nbsp;</td>							
    			<td><?php echo h($marchefinancement['Marchefinancement']['montantbailleur']); ?>&nbsp;</td>
    		</tr>
    	</tbody>
    		<?php endforeach; ?>
    </table>
    	<?php echo debug($marchefinancement) ?>
    </div>

    SEULEMENT....
    les bailleurs n'affichent que leurs id, je voudrais faire ressortir le nom des bailleurs.

    aidez-moi svp!!!
    Images attachées Images attachées    

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/08/2012, 13h36
  2. Réponses: 4
    Dernier message: 10/10/2010, 11h46
  3. Réponses: 2
    Dernier message: 05/03/2010, 14h15
  4. Réponses: 1
    Dernier message: 28/04/2009, 02h12
  5. [Formulaire] Afficher 2 autres champs si on sélectionne une option
    Par plex dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 14/05/2008, 11h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo