为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 php 和 twig 中渲染视图?

如何在 php 和 twig 中渲染视图?

PHP
POPMUISE 2022-05-27 14:39:23
我正在创建一个网页,学生和教师可以在其中登录,教师创建关卡,学生可以完成该关卡。我解释一下,我正在使用 php 和 twig,我想渲染一个在函数中传递参数的视图。我创建了一个名为 Professors 的 budle,其中有目录 Controllers、Models 和 Templates。在模板中,我有professionals.html,我在其中显示一些信息和一个按钮来为学生创建关卡,我还有crearNivell.html,老师可以在其中创建关卡。当我在页面浏览教授中时,我的 URL 是这个:当我单击“创建级别”按钮时,我希望我的 URL 如下所示:相反,我得到了这个 URL,这个 URL 返回了一个错误。在Controllers/ProfessorsController.php我有那个代码:class ProfessorController extends Controller{public function process($params){    /*var_dump($params);    die();*/    if(empty($params[0])){        $this->getProfessor(); //Here I return the view professor    }elseif(isset($params[0]) && $params[0] == "crearNivell"){        $this->twig = "crearNivell.html";    }}public function getProfessor(){    $this->twig = "professor.html";}}有人可以帮我写代码吗?
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

几天前我找到了问题的答案。我把自己复杂化了,就像这样:

首先,您在 Templates 文件夹中创建视图。

$params 引用 URL。例如:

校友是捆绑

//img1.sycdn.imooc.com//6290725600017dc504190201.jpg

AlumneController.php


然后在 AlumneController.php 中输入不带 .html 的视图名称,然后使用$this->twig = "name_Of_The_View.html";


<?php

 class AlumneController extends Controller{


    public function process($params)

    {

        /*var_dump($params);

        die();*/


        if(empty($params[0])){


            $this->getAlumne();

            /*echo $usuari = $_SESSION["username"];*/


        }else if(isset($params[0]) && $params[0] == "instruccions"){


            $this->twig = "instruccions.html";

            /*echo $usuari = $_SESSION["username"];*/


        }else if(isset($params[0]) && $params[0] == "resultats"){


            $this->twig = "resultats.html";

            /*echo $usuari = $_SESSION["username"];*/


        }

    }


    public function getAlumne(){


        $this->twig = "alumne.html";

    }

 }


校友.html


在按钮或链接中,您用于访问您在其中写入路径的页面<a href="bundle/view_name">Instruccions</a>


<a class="mdl-navigation__link" href="alumne/instruccions">Instruccions</a>

<a class="mdl-navigation__link" href="alumne/resultats">Resultats</a>AlumneController.php


然后在 AlumneController.php 中输入不带 .html 的视图名称,然后使用$this->twig = "name_Of_The_View.html";


<?php

 class AlumneController extends Controller{


    public function process($params)

    {

        /*var_dump($params);

        die();*/


        if(empty($params[0])){


            $this->getAlumne();

            /*echo $usuari = $_SESSION["username"];*/


        }else if(isset($params[0]) && $params[0] == "instruccions"){


            $this->twig = "instruccions.html";

            /*echo $usuari = $_SESSION["username"];*/


        }else if(isset($params[0]) && $params[0] == "resultats"){


            $this->twig = "resultats.html";

            /*echo $usuari = $_SESSION["username"];*/


        }

    }


    public function getAlumne(){


        $this->twig = "alumne.html";

    }

 }


校友.html


在按钮或链接中,您用于访问您在其中写入路径的页面<a href="bundle/view_name">Instruccions</a>


<a class="mdl-navigation__link" href="alumne/instruccions">Instruccions</a>

<a class="mdl-navigation__link" href="alumne/resultats">Resultats</a>


查看完整回答
反对 回复 2022-05-27
?
守着一只汪

TA贡献1872条经验 获得超4个赞

我认为您正在寻找的是Twig 的 API

更具体地说,您需要下面的行来渲染模板,并在数组中传递一些参数:

echo $template->render(['the' => 'variables', 'go' => 'here']);

如果您使用 PHP 将某些内容“打印”到浏览器的最快方式是echo,请不要犹豫使用它。


查看完整回答
反对 回复 2022-05-27
  • 2 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号