gpt4 book ai didi

symfony - 学说2检查数据库中存在OneToOne相关实体

转载 作者:行者123 更新时间:2023-12-03 17:49:09 26 4
gpt4 key购买 nike

实体已声明 OneToOne 关系

/**
* @var \Backend\SalesBundle\Entity\SalesOrder
*
* @ORM\OneToOne(targetEntity="Backend\CatalogBundle\Entity\CatalogProduct")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="product_id", referencedColumnName="product_id")
* })
*/
private $product;

以下代码适用于两种情况。如果数据库条目存在,如果不存在
{{ item.product.productId }}

但是当我调用需要从数据库加载的字段时,我有“找不到实体”。异常(exception)。由于 Doctrine Proxies,我知道的所有 Twig 测试都不适合检查这个
{{ item.product.name }}
{{ item.product is null }}
{{ item.product is empty }} etc.

有没有什么优雅的方法来检查相关实体是否存在?我可以这样做,但对我来说还不够好,因为我需要调用 {{ item.product.productId }}
public function getProduct()
{
try {
$sku = $this->product->getSku();
} catch (\Doctrine\ORM\EntityNotFoundException $e) {
return null;
}

return $this->product;
}

最佳答案

@andreysaf,尝试默认过滤器。

{{ item.product.name|default }}

如果不存在产品,它可以防止抛出异常。
事实上,它打印传递的字符串(默认字符串是空行)。

关于symfony - 学说2检查数据库中存在OneToOne相关实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25573347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com