TYPO3自定义扩展程序在数据库中的印象数

时间:2016-11-19 08:45:39

标签: typo3 extbase typo3-7.6.x

我写了一个扩展程序,随机选择一定数量的图像并显示链接(横幅)。

我想计算他们显示的次数(展示次数)。也就是说,在随机函数选择之后,我想将所选条目的数据库字段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;
}
  • 我不知道如何处理所产生的物体 $query->execute() ...
  • 我不知道如何写入数据库......
  • 我不知道如何将字段impressions增加一个......

1 个答案:

答案 0 :(得分:1)

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

例如在WhateverController中......

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