Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何连接表原则symfony2_Symfony_Doctrine Orm - Fatal编程技术网

如何连接表原则symfony2

如何连接表原则symfony2,symfony,doctrine-orm,Symfony,Doctrine Orm,我的数据库中有两个表,我想加入这两个表以在视图中显示数据,但我没有找到解决方案 这是我在下面给出的第一个实体 /** * @ORM\Entity */ class classified { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="IDENTITY") */ protected $classified_id;

我的数据库中有两个表,我想加入这两个表以在视图中显示数据,但我没有找到解决方案

这是我在下面给出的第一个实体

/**
 * @ORM\Entity
 */
class classified   
{
     /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $classified_id;

    /**
     * @ORM\Column(type="integer")
    */
    protected $user_id=0;

    /**
     * @ORM\Column(type="string")
    */
    protected $firstname="null";

    /**
     * @ORM\Column(type="integer")
     */
    protected $region_id="null";
第二个实体:

class regions  
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
    */
    protected $region_id;

    /**
     * @ORM\Column(type="string")
    */
    protected $regionname;

    /**
     * @ORM\Column(type="integer")
    */
    protected $country_id=107;
}
在我的控制器中,我想加入表以获取信息

$em = $this->getDoctrine()
                   ->getEntityManager();

        $classified = $em->createQueryBuilder()
                    ->select('b')
                    ->from('BlogBundle:classified',  'b')
                    ->addOrderBy('b.classifiedaddeddate', 'DESC')
                    ->getQuery()
                    ->getResult();
        return $this->render('BlogBundle:Page:index.html.twig', array(
            'classified' => $classified
        ));
有什么解决办法吗?

写漂亮干净的代码

在回答之前,我建议您修复代码中的以下问题

类名应为CamelCase&单数分类而不是分类,区域而不是区域 尝试找到一种更干净的方法,将country\u id设置为protected$country\u id=107;不适用于用户id 所以,为了得到你的分类实体及其相关区域,你必须

首先,改变你的分类班

并添加到您的区域实体中

深入阅读文档一章中的部分,了解如何使用条令定义实体关联。

编写漂亮干净的代码

在回答之前,我建议您修复代码中的以下问题

类名应为CamelCase&单数分类而不是分类,区域而不是区域 尝试找到一种更干净的方法,将country\u id设置为protected$country\u id=107;不适用于用户id 所以,为了得到你的分类实体及其相关区域,你必须

首先,改变你的分类班

并添加到您的区域实体中


深入阅读文档章节的部分,了解如何使用条令定义实体关联。

您的模式不正确。你永远不应该在实体中写任何东西。可以通过引用而不是数据库ID将对象绑定到一起。请仔细阅读文档。您的架构不正确。你永远不应该在实体中写任何东西。可以通过引用而不是数据库ID将对象绑定到一起。请仔细阅读文档。您可能指的是OneToManytargetEntity=Classified,mappedBy=regionsorry我没有很好地解释我的问题,我的表区域充满了信息,因此我必须在合并两个表时提取这些信息。例如,我喜欢在分类时获取变量$regionname。region\u id=region.region\u id是,如果您的实体关联如我所建议的那样定义良好,那么获取regionname就很容易,$q=doctor\u Query::create->select'c.*,r.regionname'->from'classified c'->leftJoin'c.region r'->。。。花点时间深入阅读文档,以了解条令关联的所有可能用途。您可能指的是OneToManytargetEntity=Classified,mappedBy=regionsorry我没有很好地解释我的问题,我的表区域充满了信息,因此我必须在合并两个表时提取这些信息。例如,我喜欢在分类时获取变量$regionname。region\u id=region.region\u id是,如果您的实体关联如我所建议的那样定义良好,那么获取regionname就很容易,$q=doctor\u Query::create->select'c.*,r.regionname'->from'classified c'->leftJoin'c.region r'->。。。花点时间深入阅读文档,以了解条令关联的所有可能用途。
/**
 * @ORM\Column(type="integer")
 */
protected $region_id="null";
/**
 * @ORM\ManyToOne(targetEntity="Region", inversedBy="classifieds")
 * @ORM\JoinColumn(name="region_id", referencedColumnName="region_id")
 */
protected $region;
/**
 * @ORM\OneToMany(targetEntity="Classified", mappedBy="region")
 */
protected $classifieds;