CakePHP是放置特定布局逻辑的最佳位置


CakePHP - where is the best place to put logic for a specific layout?

我使用的布局有三个列表是从数据库查询创建的。我建议将这些数据放在会话中,这样应用程序就不必在每次加载页面时查询数据库。

应用的管理部分将不需要这些数据,因为它使用不同的布局。在cakePHP中,设置会话数据的逻辑放在哪里最好?

是最好的方法来创建另一个控制器扩展AppController和照看设置这个会话数据?

您可以为这三个列表创建元素。最好的方法是使用requestAction和elements。使用元素还允许缓存输出,这总是一个好主意。

在AppController的beforeRender()中指定它。如果在任何控制器中都有beforeRender(),请记住调用parent::beforeRender()

我仍然是相当新的CakePHP,所以这可能不是最好的方式来做到这一点,但我会有一个模型使用自定义行为来检查会话数据是否已经加载,并根据是否已经加载从会话或数据库加载数据。所以我认为代码可以写成一种行为,然后在必要的时候使用模型。如果我说错了,请指正我。