gpt4 book ai didi

php - 建模关联模型(DRY、KISS、SKINNY CONTROLLER 和 FAT 模型)

转载 作者:行者123 更新时间:2023-11-30 00:27:51 24 4
gpt4 key购买 nike

我有两个模型:

服务器(属于从属)

从站(有许多服务器)

在 Controller 中,我需要获取一个包含服务器/从站信息的数组(以及一些附加信息,例如 Controller 中无法包含的业务逻辑)。我想在服务器模型中创建一个函数来构建数组,以及我需要从 Slave 获得的每个字段,我只需调用这样的函数:

Model Server:

// I created this function for code easier to maintain
function getSlaveId($server_id){
$this->id = $server_id;
return $this->field('slave_id');
}

// Return the array that I need, with informations from Server and Slave
function getArrayByServerId($server_id){
$slave_id = $this->getSlaveId($server_id);
return array(
'slave_name' => $this->Slave->getName($slave_id)
// some other information that some did not even pull from some table..
);
}
正如你所看到的,我创建了一个函数来从服务器中提取一个字段,因为如果有一天发生变化,我将只需要在一个地方进行更改..对于我正在考虑的从站也是如此使用函数来拉取每个字段..

所以,问题是:我应该使用每个字段的函数来获取从站的信息还是有其他更好的方法? (我需要几乎整个从属表信息,除了一些字段..)

最佳答案

您可以使用Containable behaviour它将提取必要的信息,而无需像这样的复杂逻辑。使用该行为,您可以发出如下请求:

$this->Server->find('first', array('conditions'=>array(...), 'contain'=>array('Slave')));

这样你就不会让你的模型产生不必要的脂肪(它们健康吗:))并且你会得到需要的东西。与containable您也可以获得特定字段。

关于php - 建模关联模型(DRY、KISS、SKINNY CONTROLLER 和 FAT 模型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22739416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com