TYPO3 自定义扩展在数据库中注册印象

TYPO3 custom extension register impressions in database

我写了一个扩展程序,它随机选择定义数量的图像 link(横幅)来显示。

我想计算它们显示的次数(展示次数)。也就是说,在选择随机函数后,我想将所选条目的数据库字段 impressions 增加一个。

这是域存储库的相关部分:

public function findPartnerList($entryNumber = 6) {

    $entries = $this->createQuery()->execute()->count();
    $offset = mt_rand(0, max(0, ($entries - $entryNumber)));

    ... // code refers to a class that picks random

    $result = $query->execute();

   ... // field:impressions should get increased by one for all uid's in $result

    return $results;
}

基本上,您应该仅在控制器中而不是在存储库中对域对象执行操作 - ORM 层只是 OOP 域模型世界与数据库之间的连接。

例如在WhateverController中...

...
/** @var Whatever[] $items */
$items = $this->whateverRepository->findPartnerList();
foreach ($items as $item) {
    $item->setImpressions($item->getImpressions() + 1);
    $this->whateverRepository->update($item);
}
...