繁体   English   中英

Symfony2 Doctrine2如果不从数据库中获取数据,如何添加对象

[英]Symfony2 Doctrine2 how to add object if not fetched from db

检查以下示例: http : //symfony.com/doc/current/book/doctrine.html#fetching-objects-from-the-database

我得到的是:

$results = $applicationsRepo->findByInName($appInNames);

其中appInNames是一个看起来像这样的数组:

array(
    app1_name => app1_name,
    app2_name => app2_name,
    app3_name => app3_name,
    ...
)

我想创建一个找不到的实体对象。 如何检查是否返回了app1_name ,如果没有创建一个?

如果需要获取将inName属性设置为app1_nameapp2_name等等的所有实体的数组(如果不存在默认值),则使用默认值,如果结果为NULL,则可以使用findOneBy代替findBy并创建您的实体。

由于循环可能不是最有效的方法,但它可以为您提供所需的内容:

$results = array();
foreach($appInNames as $appInName) {
    $app = $applicationsRepo->findOneByInName($appInName);
    if(!isset($app)) {
        // Create you entity here
    }
    $results[$appInName] = $app;
}

一种更有效的方法是编写自定义存储库,并使用queryBuilder添加所有OR条件。 您将在一个查询中获得所有现有实体,然后必须解析结果以创建缺少的实体。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM