处理与Doctrine/Bolt的内容类型关系EM

处理与Doctrine/Bolt的内容类型关系EM

问题描述:

我有一个扩展服务于创建实体(问题)的路径,该实体有一个相关条目(每个条目有0,1个或多个相关问题)。处理与Doctrine/Bolt的内容类型关系EM

我似乎无法获得bolt的save/doctrine的持久化方法来实际上保持关系。我已经试过如下:

$question = $repo->create([ 
    'question' => $request->get('question', 'What is love?'), 
    'status' => 'draft', 
    'entries' => [$entry] 
]); 

$question->relation->add($entry)

$question->setRelation(new Collection\Relations([$entry], $em))

(编辑)我也试过

$entry = $em->find('entries', $request->get('entry', 1)); 
$related = $em->createCollection('Bolt\Storage\Entity\Relations'); 
$related->add(new Relations([ 
    'from_contenttype' => $question->getContenttype(), 
    'from_id' => $question->getId(), 
    'to_contenttype' => $entry->getContenttype(), 
    'to_id' => $entry->getId() 
])); 

$question->setRelation($relation); 

每下方的响应,但仍然不工作。

没有哪个工作 - 它正确保存问题(内容)实体,但不保存关系。真的不知道在哪里可以从这里去...

这是螺栓本身是怎么做的:

$related = $this->em->createCollection('Bolt\Storage\Entity\Relations'); 
    $related->setFromPost($formValues, $content); 
    $content->setRelation($related); 

从这里:https://github.com/bolt/bolt/blob/fde4e50fbbca13d90fea34f502477b4e26796593/src/Storage/ContentRequest/Save.php#L201-L203

希望这回答您的问题!

+0

no dice - see my post –

这里有一个我正在进行的测试,我知道目前的语法很丑,计划是添加更多的辅助方法,但这确实有效。

$repo = $app['storage']->getRepository('pages'); 

$newPage = $repo->create( 
    [ 
     "title" => 'An Example Title', 
     "slug" => 'an-example-title', 
     "status" => 'published', 
     "teaser" => 'An intro teaser goes here', 
     "body" => 'Lorem ipsum dolor sit amet, consectet adipisici.', 
    ] 
); 

$newPage->getRelation()->setFromPost(['entries' => [1]], $newPage); 
$repo->save($newPage);