2011-12-04 11 views
1

ここで間違っていることを知りたいです。cakephpテーブル関係の空

私はこの関係

Proprietaireモデルがあります:proprietaireで

var $belongsTo = array(
    'Residence' => array(
     'className' => 'Residence', 
     'foreignKey' => 'residence_id', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '' 
    ) 
); 

レジデンスモデル

var $hasMany = array(
'Proprietaire' => array(
     'className' => 'Proprietaire', 
     'foreignKey' => 'residence_id', 
     'dependent' => true, 
     'conditions' => '', 
     'fields' => '', 
     'order' => '', 
     'limit' => '', 
     'offset' => '', 
     'exclusive' => '', 
     'finderQuery' => '', 
     'counterQuery' => '' 
    ) 
); 

私はこの

<?php 
class ProprietairesController extends AppController { 

var $name = 'Proprietaires'; 

    function index() { 
    $this->Proprietaire->recursive = 1; 
$this->set('proprietaires', $this->paginate()); 

$residences = $this->Proprietaire->Residence->find('list'); 
$this->set(compact('residences')); 
    } 

} 
?> 

BUのように滞留名を取得しようとしますt私のproprietaireビューで

<?php foreach ($proprietaires as $proprietaire): ?> 
     <?= print_r($proprietaire['Residence'])?> 
     <tr <?= $this->Cycle->css(array('list-line-odd', 'list-line-even'),true); ?>> 
      <td><?php echo $proprietaire['Proprietaire']['nom']; ?>&nbsp;</td> 
      <td style="text-align: center;"><?php echo $proprietaire['Proprietaire']['prenom']; ?>&nbsp;</td> 
      <td style="text-align: center;"><?php echo $proprietaire['Residence']['nom']; ?>&nbsp;</td> 
      <td class="actions"> 
       <?php echo $this->Html->link(__('Modifier', true), array('action' => 'edit', $proprietaire['Proprietaire']['id'])); ?> 
       <?php echo $this->Html->link(__('Supprimer', true), array('action' => 'delete', $proprietaire['Proprietaire']['id']), null, sprintf(__('&Ecirc;tes-vous certain de vouloir supprimer # %s?', true), $proprietaire['Proprietaire']['id'])); ?> 
      </td> 
     </tr> 
    <?php endforeach; ?> 

print_r(proprietaire ['Residence']私に空の配列を教えてください。

Array () 1 Array () 1 Array () 1 Array () 1 Array () 1 Array () 1 Array () 1 Array () 1 Array () 1 Array () 1 Array () 1 Array () 1 Array () 1 Array () 1 Array () 1 

何が悪いですか?私のテーブルの関係?

ご協力いただきありがとうございます。

+0

あなたは 'pr($ residences)'から何を得ますか?また、ケーキが生成しているSQLクエリを見てきましたか? – bjudson

+0

データベーステーブルを正しく設定していて、テーブルに実際に関連する「居住」データがありますか? –

答えて

0

あなたのレジデンスモデルに

var $displayField = 'nom'; 

かそこらのように見つけるのですかdisplayField属性を設定していることを確認してください:

$residences = $this->Proprietaire->Residence->find('list', array('Residence.id', 'Residence.nom')); 

が2にクエリ、設定デバッグレベルをチェックし、追加あなたのレイアウトやビューに従う

<?php echo $this->element('sql_dump'); ?>