主要任务是拥有一个可以连接到另一个实体的实体。 我已经有一个名为" Dossier"在这一个中,我喜欢有一个像邮件一样的树状结构。
答案 0 :(得分:0)
是的,你可以这样做。
我喜欢生成注释风格,YAML作为个人的第二选择。您将如何生成实体映射?我相信XML是你的另一种选择。
你的要求似乎是,你能有关系,是的,你可以。您可以使用FK或Foriegn Keys。你有没看过MySQL,或者你有什么兴趣?
如果您不确定如何设计架构,那么有一个名为MySQL Workbench的MySQL程序。你熟悉吗?您可以使用它来生成简单的FK表关系,然后生成实体将遵循此关系。每次重新调整架构时重新生成。我认为架构中的逆向工程实体是最好的方法。
如果你采用这种方法,一旦你设计了DB Schema,建立了表,如果空是无关紧要的,你可以用这种方式对你的实体进行逆向工程。 see this url here
//import orm mapping information from database, and using a filter for a specific table if you wanted
php app/console doctrine:mapping:import --force YourBundle yml --filter Table1
//convert mapping information, only if you didnt use YML in the top command.
//we need to force this, make sure you dont need any changes on the entity page (normally this is left default_, otherwise back it up first.
php app/console doctrine:mapping:convert annotation ./src --force --filter Table1
立即生成实体
$php app/console doctrine:generate:entities YourBundle
// or generate an entity from scratch
$ php app/console doctrine:generate:entity
为任何新属性生成你的getter和setter,不要触摸你的方法,安全。
$ php app/console doctrine:generate:entities Acme/YourBundle/Entity/Table1
$ php app/console doctrine:schema:update --force or --dump-sql
这将延续Foriegn Relationships。当你使用Doctrine来访问你的数据时,你可以使用关系来查询你认为合适的方式......我试着在这个问题上得到一个很好的例子,我确实有一个例子,但这只是一个例子。
/**
* getfruitSubtextures()
* @Route("/fruit/subtextures/color/{color}/size/{size}/texture/{texture}", name="get_fruit_subtextures", options={"expose"=true})
* @param $color
* @param $size
* @param $texture
* @Method("GET")
*/
public function getfruitSubtextures($color, $size, $texture){
$em = $this->getDoctrine()->getManager();
$rsm = new ResultSetfruitpingBuilder($em);
$rsm->addRootEntityFromClassMetadata('WeRuS\fruitBundle\Entity\Opttextures', 'g');
$sql = "SELECT SubtextureLabel, textureSubtexture
FROM opt_textures
WHERE texturelabel = :texturelabel
AND color = :color
AND size = :size
ORDER BY SubtextureLabel ASC";
$query = $em->createNativeQuery($sql,$rsm);
$query->setParameters(array(
'color' => $color,
'size' => $size,
'texturelabel' => $texture,
));
$results = $query->getArrayResult();
if (!$results)
{
throw $this->createNotFoundException('No Matching subtextures found for this fruit size texture!');
}
else
{
$response = new JsonResponse();
$response->setData($results);
return $response;
}
}
为此制作CRUD,等到您的架构和实体处于正常工作状态,然后按照this procedure
进行操作$ php app/console generate:doctrine:crud --entity=YourBundle:Table1 --with-write --format=annotation --overwrite
编辑,我认为用户正在寻找树状结构的例子,而不是树,本文主要提供如何在没有树的情况下做到这一点。哎呀。