我正在与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实际需要它时运行。由于逻辑(Controller)和显示(视图)是分开的,我无法在控制器中确定是否需要getVariant()。怎么办?
答案 0 :(得分:1)
在控制器中创建一个将更新数据库的操作。然后在视图中使用Ajax来调用该函数,而无需刷新或更改页面。