Symfony 3:在另一个方法中转发一个方法的结果

阿米拉·贝迪亚菲

我正在尝试将此方法的结果插入到同一控制器中的另一个:

public function categorieAction(Request $request, string $categorie) {

        $categories = $this->getDoctrine()->getRepository(Categorie::class)->findAll();

        $criteria = 'p.subcat_id=sub.id and sub.categorie_id=cat.id and cat.nom like "' . str_replace('-', ' ', $categorie) . '"';
        $em = $this->getDoctrine()->getManager();

        $query1 = 'SELECT p.*,(SELECT min(h.prix) FROM Histprix h,Urlproduit u
                    WHERE h.urlproduit_id=u.id and u.produit_id=p.id  and p.status=1) as "prixmin",(SELECT max(h.prix) FROM Histprix h,Urlproduit u
                    WHERE h.urlproduit_id=u.id and u.produit_id=p.id  and p.status=1) as "prixmax", (select count(*) from produit_revendeur  where produit_id=p.id and p.status=1) as "offre"
                FROM  Produit p,Subcat sub,Categorie cat
                WHERE p.status=1 and ' . $criteria . ' ;';

        $query2 = 'SELECT DISTINCT s.* FROM Spec s, Produit p, Valeur v, Produit_valeur vp
                WHERE vp.product_id=p.id AND vp.valeur_id = v.id AND s.id=v.spec_id AND p.id IN 
                (SELECT p.id FROM Produit p,Subcat sub, Categorie cat where p.status=1 and ' . $criteria . ')';

        $query3 = 'SELECT DISTINCT valeur, spec_id from Valeur v, produit_valeur pv where pv.product_id IN  (SELECT p.id FROM Produit p,Subcat sub, Categorie cat where p.status=1 and p.subcat_id=sub.id and sub.categorie_id=cat.id and cat.nom like "' . $categorie . '") and v.id=pv.valeur_id';

        $query4 = 'SELECT DISTINCT m.nom from Marque m where m.id IN (SELECT p.marque_id FROM Produit p,Subcat sub, Categorie cat where p.status=1 and ' . $criteria . ')';

        $query5 = 'SELECT distinct min(h.prix) as "min" ,max(h.prix) as "max" FROM Histprix h,Urlproduit u,Produit p
                    WHERE h.urlproduit_id=u.id and u.produit_id=p.id and p.status=1 AND p.id IN 
                (SELECT p.id FROM Produit p,Subcat sub, Categorie cat where p.status=1 and ' . $criteria . ')';
        $statement = $em->getConnection()->prepare($query1);
        $statement->execute();
        $produit = $statement->fetchAll();

        $statement1 = $em->getConnection()->prepare($query2);
        $statement1->execute();
        $specs = $statement1->fetchAll();

        $statement2 = $em->getConnection()->prepare($query3);
        $statement2->execute();
        $valeurs = $statement2->fetchAll();

        $statement3 = $em->getConnection()->prepare($query4);
        $statement3->execute();
        $brands = $statement3->fetchAll();

        $statement4 = $em->getConnection()->prepare($query5);
        $statement4->execute();
        $prices = $statement4->fetchAll();

        if (!$produit) {
            throw $this->createNotFoundException('The product does not exist');
        } else {
            $paginator = $this->get('knp_paginator');
            $produits = $pagination = $paginator->paginate(
                    $produit, $request->query->getInt('page', 1), $request->query->getInt('limit', 5));

            return $this->render('ProductBundle:Product:category.html.twig', array('produits' => $produits, 'specs' => $specs, 'valeurs' => $valeurs, 'brands' => $brands, 'price' => $prices,'categories'=>$categories));
        }
    }

这是第二种方法,我用其中以访问该方法生成的类别的结果,而不是使用它作为一种服务(最佳实践)。问题是如何发送的类别的参数categorieAction()在所述contactusAction()

public function contactusAction() {
      //contactusAction()" requires that you provide a value for the "$c" argument
        $categories = $this->forward('ProductBundle:Product:categorie', array(
        'c'  => $c,
    ));
        return $this->render('ProductBundle:Default:contactus.html.twig', array('categories'=>$categories));
    }
阿米拉·贝迪亚菲

解决方案是使用 forward :

public function contactusAction() {

    $categories = $this->forward('ProductBundle:Product:categorie');
    return $this->render('ProductBundle:Default:contactus.html.twig', array('categories'=>$categories));
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

symfony实体:在属性/ to_string方法中使用另一个实体属性

来自分类Dev

从另一个包中覆盖symfony扩展的“正确”方法是什么

来自分类Dev

使用Symfony中的FOSTRestBundle从另一个应用程序中的另一个类调用方法

来自分类Dev

Symfony调用另一个捆绑中的捆绑

来自分类Dev

在Symfony中注册另一个捆绑包

来自分类Dev

Symfony - 在另一个实体上存储数据

来自分类Dev

Symfony 2控制器在转发到另一个控制器时会丢失容器

来自分类Dev

Symfony2获取另一个实体中一个实体的实体

来自分类Dev

symfony 从一个域重定向到另一个域

来自分类Dev

Symfony2:将一个formType嵌入另一个formType中,以引用addAction()方法的外键(多个form Type)

来自分类Dev

Symfony 3 使用 url 参数重定向到另一个路由

来自分类Dev

在symfony中将发布的值从一个控制器传递到另一个

来自分类Dev

渲染一个完整的树枝模板,在Symfony中使用ajax扩展另一个模板

来自分类Dev

Symfony2-以表格形式显示一个属性,由另一个属性映射

来自分类Dev

Symfony 如何创建一个实体并将其添加到另一个?

来自分类Dev

Symfony 2.5 - 如何从一个页面捕获信息以将其显示到另一个页面中?

来自分类Dev

从一个存储库到另一个存储库的 Symfony 大规模水合

来自分类Dev

将另一个控制器转发到symfony2中的数组时,如何转换JSON数据?

来自分类Dev

Symfony2:从控制器中的另一个文件获取HTML

来自分类Dev

使用另一个symfony2项目作为供应商

来自分类Dev

Symfony“对另一个命名空间的'use'语句?” 问题

来自分类Dev

symfony验证另一个字段是否为特定值

来自分类Dev

无法将文件表单嵌入到Symfony 2.8中的另一个表单

来自分类Dev

在另一个命令中调用Symfony控制台命令并禁止输出

来自分类Dev

在Symfony2上添加与另一个特定实体相关的新实体

来自分类Dev

Symfony 2-从另一个控制器呼叫控制器

来自分类Dev

Symfony2 FOSUserBundle自动关联到另一个实体

来自分类Dev

Symfony2从与另一个oneToMany相关的实体oneToMany获取值

来自分类Dev

从Symfony2中的表单检索另一个实体

Related 相关文章

  1. 1

    symfony实体:在属性/ to_string方法中使用另一个实体属性

  2. 2

    从另一个包中覆盖symfony扩展的“正确”方法是什么

  3. 3

    使用Symfony中的FOSTRestBundle从另一个应用程序中的另一个类调用方法

  4. 4

    Symfony调用另一个捆绑中的捆绑

  5. 5

    在Symfony中注册另一个捆绑包

  6. 6

    Symfony - 在另一个实体上存储数据

  7. 7

    Symfony 2控制器在转发到另一个控制器时会丢失容器

  8. 8

    Symfony2获取另一个实体中一个实体的实体

  9. 9

    symfony 从一个域重定向到另一个域

  10. 10

    Symfony2:将一个formType嵌入另一个formType中,以引用addAction()方法的外键(多个form Type)

  11. 11

    Symfony 3 使用 url 参数重定向到另一个路由

  12. 12

    在symfony中将发布的值从一个控制器传递到另一个

  13. 13

    渲染一个完整的树枝模板,在Symfony中使用ajax扩展另一个模板

  14. 14

    Symfony2-以表格形式显示一个属性,由另一个属性映射

  15. 15

    Symfony 如何创建一个实体并将其添加到另一个?

  16. 16

    Symfony 2.5 - 如何从一个页面捕获信息以将其显示到另一个页面中?

  17. 17

    从一个存储库到另一个存储库的 Symfony 大规模水合

  18. 18

    将另一个控制器转发到symfony2中的数组时,如何转换JSON数据?

  19. 19

    Symfony2:从控制器中的另一个文件获取HTML

  20. 20

    使用另一个symfony2项目作为供应商

  21. 21

    Symfony“对另一个命名空间的'use'语句?” 问题

  22. 22

    symfony验证另一个字段是否为特定值

  23. 23

    无法将文件表单嵌入到Symfony 2.8中的另一个表单

  24. 24

    在另一个命令中调用Symfony控制台命令并禁止输出

  25. 25

    在Symfony2上添加与另一个特定实体相关的新实体

  26. 26

    Symfony 2-从另一个控制器呼叫控制器

  27. 27

    Symfony2 FOSUserBundle自动关联到另一个实体

  28. 28

    Symfony2从与另一个oneToMany相关的实体oneToMany获取值

  29. 29

    从Symfony2中的表单检索另一个实体

热门标签

归档