小编pin*_* af的帖子

如何在一对多关系中复制另一个表的外键

我有三个表结构:tournament,groupteam.所述tournamentgroup表具有一个一对多关系,groupteam具有一个对多关系如下所示.

表结构

我如何复制的价值tournament_id,从group表到group_tournament_idteam表?

我正在寻找一个使用create语句来实现这个目标的答案

create table team (
    id serial primary key, 
    group_id int references group, 
    group_tournament_id int references group(tournament_id)
);
Run Code Online (Sandbox Code Playgroud)

当然这不起作用,因为为了引用它必须是唯一的东西,在这种情况下,tournament_id不是唯一的

当我插入团队时,我需要一种标准的方法来将tournament_idfrom 的值复制group到'team'表中group_tournament_idgroup_id insidetable

编辑:不再需要在symfony中回答,只需postgreSQL即可

postgresql database-design one-to-many table-relationships postgresql-9.6

12
推荐指数
1
解决办法
646
查看次数

内部联接如何使用Doctrine和Symfony2处理多对多关系

我最近解决了查询ManyToMany关系连接表的问题,解决方案与此答案相同,并且想知道它是如何工作的.假设我和ManyToMany之间有一个简单的关系,会有一个表格会自动在这里创建groupsteamgroups_team

团体实体

/**
 * Groups
 *
 * @ORM\Table(name="groups")
 * @ORM\Entity(repositoryClass="AppBundle\Model\Repository\GroupsRepository")
 */
class Groups {

    /**
     * @ORM\ManyToMany(targetEntity="Team", inversedBy="group")
     */
    protected $team;

    public function __construct() {
        $this->team = new ArrayCollection();
    }

    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="groupname", type="string", length=255)
     */
    private $groupname;
    //obligatory getters and setters :)
Run Code Online (Sandbox Code Playgroud)

团队实体

/**
 * Team
 * 
 * @ORM\Table(name="team")
 * @ORM\Entity(repositoryClass="AppBundle\Model\Repository\TeamRepository") …
Run Code Online (Sandbox Code Playgroud)

php mysql doctrine symfony doctrine-orm

10
推荐指数
1
解决办法
1万
查看次数

Symfony2 - 在CRUD操作中使用Delete表单

symfony生成的自动crud操作以及symfony演示应用程序具有以下用于删除操作的代码结构

    /**
     * Deletes a testing entity.
     *
     * @Route("/{id}", name="testing_delete")
     * @Method("DELETE")
     */
    public function deleteAction(Request $request, testing $testing)
    {
        $form = $this->createDeleteForm($testing);
        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) {
            $em = $this->getDoctrine()->getManager();
            $em->remove($testing);
            $em->flush();
        }

        return $this->redirectToRoute('testing_index');
    }

    /**
     * Creates a form to delete a testing entity.
     *
     * @param testing $testing The testing entity
     *
     * @return \Symfony\Component\Form\Form The form
     */
    private function createDeleteForm(testing $testing)
    {
        return $this->createFormBuilder()
            ->setAction($this->generateUrl('testing_delete', array('id' => $testing->getId())))
            ->setMethod('DELETE')
            ->getForm()
        ;
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么我们需要一个表格来删除?我们只是在树枝上有一个相应的 …

php symfony-forms symfony symfony-2.8

5
推荐指数
2
解决办法
4311
查看次数

Symfony项目设计模式

symfony 2安装程序提供了最佳实践目录结构,但没有说明如何使用这些目录,每个代码片段在哪里,确保symfony框架将其缩小到视图,实体和控制器,服务等.但更常见的是,程序员最终在控制器中放置了一个DQL查询,并在处理特定任务时使用了一些逻辑,而这就完成了工作,必须有一个更好的方法,甚至超越symfony开箱即用的目录结构,目前寻求更好的设计模式,尽可能模块化和重用

在这个任务中,在interwebz上发现了几篇好文章,并花了一天时间,它想出了一个计划,将所有数据库交互分离到存储库,所有逻辑服务,并保持控制器"瘦"作为中心从存储库和调用服务调用方法的要点.听起来不错,将是模块化的,代码可以重复使用....但是

这在某种程度上从OOP概念转移到程序编程,而不是它有任何问题,它只是没有利用OOP的强大概念

通过添加更多功能可以使对象更"强大",使其更好吗?根据定义,服务应该是一个单元的任务,我的方法会使它们变得大而丑

在这个博客上几个好点的位置,但便无法真正做到了什么,他们试图提出一个解决方案

一般而言,您在服务中发现的行为越多,您就越有可能剥夺自己对域模型的好处.如果你的所有逻辑都在服务中,那么你就会失明 - 马丁福勒

总结一下,面向服务的方法没有利用OOP的概念?怎么可以补充

php oop design-patterns symfony

5
推荐指数
2
解决办法
1307
查看次数

Symfony2命令行生成全局文件夹下的twig模板

我正在使用Symfony2.8,当我使用命令行生成控制器树枝模板时,模板是在

MyBundle/Resources/views/home/home.html.twig

我想遵循symfony docs建议的最佳实践并将其放入

app/Resources/views/home/home.html.twig

我可以剪切并粘贴树枝文件然后{% extends %}根据需要进行更改,但之后我的头发会变小,因为我会把它拉出来.

那么我在提示符中键入什么以便它MyBundle像往常一样生成控制器但是twig文件将在全局app/Resources/views 文件夹下

谢谢!

编辑:新的扩展问题

php templates symfony twig symfony-2.8

5
推荐指数
1
解决办法
195
查看次数

如何将外键指向两个主键?

我正在尝试简化数据库结构,我有两个表matchesteam_statistics:

在此输入图像描述

在这里,在team_statistics表中team_statistics.team_id应该是一个外键引用matches.teams_idmatches.teams_id1,同样team_statistics.group_id应该是一个外键引用matches.groups_idmatches.groups_id1

如何在PostgreSQL中执行此操作?

如果存在具有与另一个表这样做的其他方式matchesteam_statistics我开放的建议,但我仍想知道如何有一个外键引用两个主键.

sql postgresql database-design many-to-many foreign-keys

2
推荐指数
1
解决办法
1万
查看次数