Symfony-如果未找到实体,则添加回调

问题描述 投票:0回答:1

我几天来一直在苦苦挣扎。我正在使用API​​来存储有关食品的数据。我想做的是:

  1. 用户正在寻找产品(使用条形码)
  2. 我们在数据库中搜索产品
  3. 如果未找到任何内容,那么我们将到达API以检索信息并将它们保存在数据库中
  4. 然后我们照常处理加载的实体

如果数据库中不存在该实体,是否有一种方法(事件或其他)添加行为?

提前感谢

api symfony events doctrine
1个回答
0
投票

未经演示的代码来说明流程。

在您的存储库中:

public function findByEAN(string $ean): Product
{
    $product = $this->findOnyBy(['ean' => $ean]);
    if ($product === null) {
        throw new EntityNotFoundException(sprintf('No Product with EAN %s', $ean);
    }

    return $product;
}

在您的控制器操作中:

try {
    $product = $this->getEntityManager()->getRepository(Product::class)->findByEan($request->get('ean'));
} catch (EntityNotFoundException $e) {
    $product = '' ; // fetch product via api and store in DB
}

return $product;
© www.soinside.com 2019 - 2024. All rights reserved.