如何检索从另一个模型在localhost上输入的值

时间:2015-07-23 09:04:37

标签: php cakephp get

首先,让我澄清一下自己。我在cakephp上烘焙了一些东西,并在该应用程序中的localhost上输入值。基本上,有2个模型称为locationtemp_readings

location模型中,有一些温度限制称为high_templow_temp。以及位置的名称。我输入了这些值(例如name= fridge, low_temp= 3, high_temp= 7

temp_readings模型中,我为特定位置输入温度值(例如temperature= 10, location= frigde)。

如果临时值超出限制,我的应用会向我发送警告电子邮件。

我在temp_readings.php脚本上工作,我需要把这个条件用于发送电子邮件。

我想,我可以通过写作来获得温度的价值;

 $temperature = $this->data['temp_readings']['temperature']; 

因为我在temp_readings.php工作。

但是,我无法获得low_temphigh_temp的值,这些值会保存在位置模型下。

如何在temp_readings.php中使用low_temp和high_temp值?

以下是temp_readings.php的一部分(我不知道是否有帮助)

class temp_readings extends AppModel {

function afterSave($created, $options = array()) {

//pr($this);

//$temperature = $this->data['TemperatureReading']['temperature'];

//$low_temp=

//$high_temp=

    if ($temperature > $high_temp && $temperature < $low_temp) {

    $Email = new CakeEmail('gmail');
    $Email->from(array('****@gmail.com' => 'My Site'));
    $Email->to('***@gmail.com');
    $Email->subject('Temperature Warning!');
    $Email->send('Temperature is at critical value of');

    }
}

1 个答案:

答案 0 :(得分:0)

您应该在belongsTotemp_readings之间建立location关系,如下所示:

class temp_readings extends AppModel {

    public $belongsTo = [
        'location' // I don't know your data structure, but you'll probably need to add some details here
    ];

    /* ... */
}

然后,保存后:

function afterSave($created, $options = array()) {
    $temperature = $this->data['TemperatureReading']['temperature'] ;
    $location    = $this->data['Location'] ;
    /* ... */
}

当然,这段代码需要更改,因为我不知道你的数据库结构,但它应该给你一个关于你应该做什么的提示。