1

我使用 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()。该怎么办?

4

1 回答 1

1

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

于 2013-07-14T15:58:00.857 回答