gpt4 book ai didi

cakephp - 某个功能应该放在哪里——模型或 Controller ?蛋糕PHP

转载 作者:行者123 更新时间:2023-12-02 16:36:37 26 4
gpt4 key购买 nike

行程有很多路段有很多路段

在我的航类搜索应用程序中,我有一个返回唯一 Leg.destination 的函数。该功能用于跳闸 Controller 方法。我是否将该功能放入行程模型或腿部模型中?如果在腿部模型中我用 $this->Trip->Leg->findUniqueDests 来调用它......?我这样问是因为我想遵守 CakePHP 约定。谢谢!

//code that finds ALL destinations for each Leg
$destinations=$this->Trip->Leg->find('all', array('limit'=>100,'fields'=>'Leg.destination'));

//code that finds the unique destinations (to be used to search all flights for a particular city
function findUniqueDests($destinations){
$unique_destinations = array();
foreach ($destinations as $dest)
{
if(!in_array($dest, $unique_destinations))
{
$unique_destinations[] = $dest;
sort($unique_destinations);
}
}
return $unique_destinations;

}

最佳答案

是的,您可以将其放入腿部模型中。这将允许您从任何其他相关模型调用该方法:

// Trip Controller
$this->Trip->Leg->findUniqueDests($destinations);

// Leg Controller
$this->Leg->findUniqueDests($destinations);

// Segment Controller
$this->Segment->Leg->findUniqueDests($destinations);

感谢您知道它应该位于模型中。许多从 CakePHP 开始的人都将所有方法都塞进了 Controller 中。

以这种方式在模型中执行此操作允许您在整个应用程序中重复使用代码。实际上,这种效用函数可以放置在任何模型中。但既然它处理的是 Legs,那么最合乎逻辑的归宿就是 Leg 模型。

问题:为什么每次将目的地添加到数组时都要进行排序?这会更加优化:

function findUniqueDests($destinations) {
$unique_destinations = array();
foreach ($destinations as $dest) {
if(!in_array($dest, $unique_destinations)) {
$unique_destinations[] = $dest;
}
}
return sort($unique_destinations);
}

关于cakephp - 某个功能应该放在哪里——模型或 Controller ?蛋糕PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4339979/

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