繁体   English   中英

将逻辑从Template Toolkit移动到Catalyst

[英]Moving logic from Template Toolkit to Catalyst

我认为我在TT模板中使用了太多的条件和计算。

我正在显示DBIc中的项目结果集。 对于每个项目,我需要使用检索到的值来计算事物,并且模板似乎不是正确的位置。

但在Catalyst中,它是一个来自DBIc的厚对象。

那么如何将逻辑移到模型中呢? 我必须为所有项目运行一个完整的循环并以某种方式更改对象吗?

问候:Migue,

首先,您希望正确分离问题,从而走上正轨。 如果你是6-12个月的维护者,你会感谢你自己。

恕我直言,您的Catalyst控制器应该尽可能地使用各种模型中的业务逻辑。 这使得测试更容易,因为您没有处理Catalyst的开销。 我自己一直在考虑模型分离。 我遇到过两种思想流派:

1)使您的DBIx :: Class Result类具有业务逻辑。 这种方法简单方便。

2)创建一个由Controller实例化的独立模型,它具有DBIx :: Class模式对象。 该模型将使用DBIC模式来查询数据库,然后在自己的业务逻辑方法中使用结果数据。 如果您拥有大量业务逻辑,那么这种方法可能会更好,因为您将数据库访问与业务逻辑分开。

就个人而言,我历来使用的方法是#1,但我倾向于#2来寻找更大的应用程序。

两种可能性。

  1. 在相应的模式类中创建方法。

  2. (如果不可能为1)将回调传递给将此对象作为参数的模板。

你可以

  1. 创建一个结果集,从数据库中检索数据,然后计算所需的值
  2. 如果可能,计算数据库中的所需值,然后仅检索输出所需的数据

我个人更喜欢第二个。 我希望有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM