I am working with CakePHP for quite a while and think that I have a pretty good understanding of the mvc-principle. But today, I encountered a little problem that I do not now how to solve while sticking with mvc.
In my database, there is a table for variations of my views. It works a lot like A/B-testing. When my view is shown, I need to select one of the variations saved in the database.
So in my view, there needs to be something like this:
<?php
$variant = $this->Helper->getVariant();
switch($variant) {
case 'a':
echo "some link or content";
break;
case 'b':
echo "some other content";
break;
}
?>
But by accessing getVariant(), the chosen variant has to be updated in the database, the number of views has to be updated. This is why I do not want to have getVariant() in the Controller, because it must only be run when the View actually needs it. Because the logic (Controller) and the display (view) are separated, I can not determine in the controller if the getVariant() is needed or not. What to do?