2011-12-04 68 views
1

我想知道我在這裏做錯了什麼。cakephp表關係爲空

我有這樣的關係

模型的Propriétaire:

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' => '' 
    ) 
); 

在我的Propriétaire試圖讓居住名字這樣

<?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在我的客戶視圖

<?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

你從'公關'($住宅)'得到什麼?還有,你看過蛋糕產生的SQL查詢嗎? – bjudson

+0

您確定您正確設置了您的dabase表,並且表中實際存在相關的「居住」數據嗎? –

回答

0

確保您已在您的居住模式

var $displayField = 'nom'; 

設置displayField屬性或做找到像這樣:

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

其他檢查您的查詢,設置調試級別爲2,並添加以下在你的佈局或視圖

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