2012-07-17 60 views
0

我在CakePhp中有一個非常簡單的問題。我有兩張桌子,有很多很多關係。在Cakephp中顯示相關表中的字段

我只是想顯示相關對象的名稱,而不是它的ID。

我由控制檯製造接口是完全一樣的,因爲這一個:enter image description here

我發現遞歸參數在CakePhp docs,我發現很多相關的問題在計算器上,可是還是失敗了。

這裏是控制器:

/** 
* view method 
* 
* @throws NotFoundException 
* @param string $id 
* @return void 
*/ 
public function view($id = null) { 
    $this->Application->id = $id; 
    if (!$this->Application->exists()) { 
     throw new NotFoundException(__('Invalid application')); 
    } 
    $this->set('application', $this->Application->read(null, $id)); 
} 

這裏是圖。

<div class="related"> 
<h3><?php echo __('Related Application Memberships'); ?></h3> 
<?php if (!empty($application['ApplicationMembership'])): ?> 
<table cellpadding = "0" cellspacing = "0"> 
<tr> 
    <th><?php echo __('Id'); ?></th> 
    <th><?php echo __('Chantier Id'); ?></th> 
    <th><?php echo __('Application Id'); ?></th> 
    <th><?php echo __('Ponderation'); ?></th> 
    <th class="actions"><?php echo __('Actions'); ?></th> 
</tr> 
<?php 
    $i = 0; 
    foreach ($application['ApplicationMembership'] as $applicationMembership): ?> 
    <tr> 
     <td><?php echo $applicationMembership['id']; ?></td> 
     <td><?php echo $applicationMembership['chantier_id']; ?></td> 
     <td><?php echo $applicationMembership['application_id']; ?></td> 
     <td><?php echo $applicationMembership['ponderation']; ?></td> 
     <td class="actions"> 
      <?php echo $this->Html->link(__('View'), array('controller' => 'application_memberships', 'action' => 'view', $applicationMembership['id'])); ?> 
      <?php echo $this->Html->link(__('Edit'), array('controller' => 'application_memberships', 'action' => 'edit', $applicationMembership['id'])); ?> 
      <?php echo $this->Form->postLink(__('Delete'), array('controller' => 'application_memberships', 'action' => 'delete', $applicationMembership['id']), null, __('Are you sure you want to delete # %s?', $applicationMembership['id'])); ?> 
     </td> 
    </tr> 
<?php endforeach; ?> 
</table> 

+0

如果你已經正確設置你的協會(我還沒有讀到博客文章),所有你需要的信息將是'application'陣列英寸 您可以快速查看您在視圖/控制器中使用'debug($ application);'查看的數據。發佈你的結構(如果它是很多,使用[pastebin](http://www.pastebin.com)) – Ross 2012-07-17 13:31:13

+0

我得到的信息存儲在橋表中,所以在sql一個連接,我需要兩個。正如你所看到的,包含聯絡人信息的模型被稱爲EnjeuxMembership。 – 2012-07-17 13:36:16

+0

這是debug()信息:http://pastebin.com/qHE0kthk – 2012-07-17 13:44:58

回答

1

使用CakePHP的Containable Behavior。無處不在的教程/解釋包括至少500個我在StackOverflow上寫過我自己。

基本上,只要關聯設置正確,CakePHP的可容納行爲允許您選擇和選擇任何想要返回的數據。

閱讀關於Containable,並嘗試它。如果它仍然不起作用,請將其作爲「Can not get containable to work in CakePHP」問題(或類似的東西)

+0

謝謝,那正是我所需要的。 – 2012-07-17 15:31:45

0

如果您在2015年,試圖找出解決方案爲此cakephp3的東西在這裏,可以幫助:

表 - >人,病人,藥品,drugs_patients 病人PERSON_ID drugs_patients是許多藥物和患者之間有很多,但有其他一些領域,如的startDate和結束日期

現在您在藥物控制人員處添加藥物,並且您希望使用來自患者的身份標識和來自人員的姓名填充選定患者。

這是小菜一碟:

$患者= $這個 - > DrugsPatients-> Patients->找到( '名單',[ '關鍵字段'=> '身份證', 'valueField'=>「的人。名稱 ']) - >含有([' 人']);

=)

相關問題