从Helper或Component更改数据库行 - 哪个更好?

时间:2013-07-14 11:26:02

标签: php templates cakephp cakephp-helper

我正在与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()。怎么办?

1 个答案:

答案 0 :(得分:1)

在控制器中创建一个将更新数据库的操作。然后在视图中使用Ajax来调用该函数,而无需刷新或更改页面。