2011-08-18 69 views
0

對不起,我在CakePHP的一個新手,我對這個問題感到有點困惑,讓我解釋一下:CakePHP的 - 檢索並從不同的表使用數據

我有兩個表之間的關係。其中一個是Dose,另一個是坦克。所以,一個坦克屬於劑量。劑量有許多坦克。表模式是:

CREATE TABLE `doses` (
    `id` INT(10) NOT NULL AUTO_INCREMENT, 
    `dose` INT(5) NULL DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) 

以我坦克視圖我有以下代碼:

<?php echo $form->input('dose_id', array('class'=>'input', 'label' => ''));?> 

從劑量表中的每個「劑量」(場)對應的值,如200,300,等等。我需要使用這些數字來計算其他數字才能插入到我的數據庫(表格坦克)。舉例來說,我在tanks_controllers代碼:

$t_u = $this->data['Tank']['tipo_uso_id']; 
if($t_u == '1'){ 
$this->data['Tank']['producao_adubo_diaria'] = $this->data['Tank']['dose_id'] * 0.10; 
. 
. 
. 

但是,它正在給我的劑量的ID,而不是值(劑量場)。我可以在哪裏設置這個來爲我提供正確的數據(劑量)?我試圖在我的模型中設置這種方式:

'Dose' => array(
     'className' => 'Dose', 
     'foreignKey' => 'dose_id', 
     'conditions' => '', 
     'fields' => 'dose', 
     'order' => '' 
    ) 

它沒有工作。

我很感謝你的時間幫助我。

在此先感謝。

回答

0

it is bringing to me the ID of the Dose and not the value (dose field). Where can I set up this to bring me the correct data (dose)?

您需要從分貝(模型)得到它,而不是從視圖。所以你需要做一個find()。如果你是蛋糕的新手,你應該先閱讀食譜,看看它是如何工作的。

0

$form->input('dose_id')產生了什麼?下拉菜單?如果是這樣;默認情況下,蛋糕會產生value包含(dose_)id的下拉菜單,您看到的文本爲$displayField(通常是名稱/標題)的值。

要做到這一點;如果我瞭解你,你需要首先查詢doses所有的值,並將結果存儲在一個數組中,使用dose值作爲關鍵字AND值,而不是像平常那樣使用id。然後,您可以訪問$this->data的實際劑量值。

$doseArray=array(); 
$doses = $this->Dose->find('all'); 
foreach($doses['Dose'] as $k => $v) { 
    $doseArray[$v] = $v; 
} 

也許。似乎有點多餘,所以我可能會關閉。

相關問題