我使用 CakePHP 已经有一段时间了,并且认为我对 mvc 原理有很好的理解。但是今天,我在坚持使用mvc的同时遇到了一个我现在不知道如何解决的小问题。
在我的数据库中,有一个表格用于我的观点的变化。它的工作原理很像 A/B 测试。当显示我的视图时,我需要选择保存在数据库中的一种变体。
所以在我看来,需要有这样的东西:
<?php
$variant = $this->Helper->getVariant();
switch($variant) {
case 'a':
echo "some link or content";
break;
case 'b':
echo "some other content";
break;
}
?>
但是通过访问 getVariant(),必须在数据库中更新所选的变体,必须更新视图的数量。这就是我不想在 Controller 中使用 getVariant() 的原因,因为它只能在 View 真正需要它时运行。因为逻辑(控制器)和显示(视图)是分开的,所以我无法在控制器中确定是否需要 getVariant()。该怎么办?