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



查看此示例:http://symfony.com/doc/current/book/doctrine.html#fetching-数据库中的对象

我得到的是:

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

其中appInNames是一个如下所示的数组:

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

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

如果您需要获取一个由inName属性设置为app1_nameapp2_name等的所有实体组成的数组,如果不存在,则可以使用findOneBy而不是findBy,如果结果为NULL,则可以创建实体。

由于循环,可能不是最有效的方法,但它可以满足您的需求:

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

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

相关内容

  • 没有找到相关文章

最新更新