如何在 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>
我正在创建一个学生和教师登录的网页,教师创建级别,学生可以执行该级别。
我解释一下,我正在将 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>