gpt4 book ai didi

php - Symfony - 教义 createQueryBuilder 多重连接

转载 作者:行者123 更新时间:2023-11-29 18:14:18 24 4
gpt4 key购买 nike

我在 MySQL 中有这个查询,我想应用到学说中

SELECT * FROM ads_list AS al LEFT JOIN (ads_category AS ac, ads_category_main AS acm) ON (ac.id = al.category_id AND ac.parent_cat_id = acm.id)

你知道如何将其与学说结合使用吗?我在存储库中使用它参数转到 ads_category_main因此,我尝试选择带有 categoryads_list,每个类别都有一个存储在 ads_category_main

中的 ParentCategory

SQL

CREATE TABLE `ads_list` (
`id` int(11) NOT NULL,
`category_id` int(11) DEFAULT NULL,
`title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`content` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
`posted_at` date NOT NULL,
`post_xpr` date NOT NULL,
`agency_id` int(11) DEFAULT NULL,
`slug` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `ads_category` (
`id` int(11) NOT NULL,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`parent_cat_id` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


CREATE TABLE `ads_category_main` (
`id` int(11) NOT NULL,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

到目前为止我已经

    public function findAllP($main)
{
return $this->createQueryBuilder('pl')
->leftJoin('pl.category', 'al')
->where('al.parentCat = :pc')
->setParameter('pc', $main)
->getQuery()
->execute();
}

以及如何在 Controller 中使用输出数据?

最佳答案

只要您有相关的实体,您就可以像这样进行连接

->join/leftJoin('entity.foreign_key','alias')

如果实体不相关,则必须指定连接的“ON”选项。

之后你就有了一些方法来处理结果。

$qb->getQuery()->getResult();
$qb->getQuery()->getArrayResult();

关于php - Symfony - 教义 createQueryBuilder 多重连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47159359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com