如何在 php 和树枝中渲染视图?

How to render a view in php and twig?

我正在创建一个学生和教师登录的网页,教师创建级别,学生可以执行该级别。

我解释一下,我正在将 php 与 twig 一起使用,我想渲染一个在函数中传递参数的视图。我创建了一个名为 Professors 的 budle,其中包含目录 Controllers、Models 和 Templates。

在模板中,我有 professors.html,其中显示了一些信息和一个用于为学生创建关卡的按钮,还有 crearNivell.html,教师可以在其中创建关卡.当我在页面浏览教授时,我的 URL 是这个:

当我点击按钮 "CREATE LEVEL" 我希望我的 URL 是这样的:

相反,我得到了这个 URL,而这个 returns 我出错了。

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";
}

}

有人可以帮我处理代码吗?

当我使用 var_dump() 我得到这个:

应该是这样的:

我想你要找的是 API of Twig.

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

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

如果您使用 PHP 将某些内容 "print" 传送到浏览器的最快方式是 echo,请毫不犹豫地使用它。

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

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

$params 指的是 URL。例如:

校友是捆绑包

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";
    }
 }

alumne.html

并且在按钮或 link 中,您用于转到您在 <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>