отношение таблицы CakePHP пустое - PullRequest
1 голос
/ 05 декабря 2011

Я хотел бы знать, что я делаю здесь не так.

У меня есть это отношение

Модель пропритера:

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

в proprietaire я пытаюсь получить название места жительства следующим образом

<?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'));
   }

}
?>

, но в моем представлении 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 

Что плохого? Моя таблица отношений?

спасибо за вашу помощь.

1 Ответ

0 голосов
/ 10 января 2012

Убедитесь, что вы установили атрибут displayField в своей Резиденции Модель

var $displayField = 'nom';

или выполните поиск следующим образом:

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

еще проверьте ваши запросы, установите уровень отладки 2и добавьте следующее в свой макет или просмотр

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