对不起,我是CakePHP的新手,我在这个问题上有点困惑,让我解释一下:
我有两个表之间的关系。其中一张是Dose,另一张是坦克。所以,一个坦克属于一个剂量。剂量有很多坦克。表模式是:
CREATE TABLE `doses` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`dose` INT(5) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
在我的Tank视图中,我有以下代码:
<?php echo $form->input('dose_id', array('class'=>'input', 'label' => ''));?>
来自剂量表的每个“剂量”(字段)对应于一个值,例如200,300等。在插入我的数据库(table tank)之前,我需要使用这些数字来计算其他数字。例如,我在tank_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 :(得分: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)?
您需要从db(模型)获取它,而不是从视图中获取它。所以你需要做一个find()。如果您是Cake的新手,您应该先阅读食谱,了解它的工作原理。
答案 1 :(得分:0)
$form->input('dose_id')
会产生什么?下拉?如果是这样;默认情况下,cake会生成一个下拉列表,其中value
包含(dose_)id
,而您看到的文本为$displayField
的值(通常是名称/标题)。
要做到这一点;如果我理解你,你需要首先查询doses
所有值,并使用dose
值作为键和值,而不是id
将结果存储在数组中像往常一样。然后,您就可以从$this->data
访问实际剂量值。
$doseArray=array();
$doses = $this->Dose->find('all');
foreach($doses['Dose'] as $k => $v) {
$doseArray[$v] = $v;
}
也许。看起来有点多余,所以我可能会离开。