Twig和CodeIgniter表单呈现问题。表单显示为字符串而不是HTML表单

时间:2014-05-26 07:48:28

标签: html codeigniter twig

我第一次在 CodeIgniter 中使用 Twig 模板。我习惯了框架的默认表单功能,但我被要求尝试使用 Twig 呈现表单。我发现模板引擎同时又好又令人困惑。所以这意味着,我的控制器会因代码而变得非常胖。但这里的主要问题是使用树枝渲染表单。

以下是我在渲染表单时常常要做的事情。查看:TableSample.php

<?php 
    echo form_open("", array("name"=>"form_reg", "method"=>"post", "id"=>"form_reg"));
    echo form_input("type"=>"text", "name"=>"fname", "value"=>set_value("fname"));
    echo form_input("type"=>"text", "name"=>"lname", "value"=>set_value("lname"));
    echo form_input("type"=>"text", "name"=>"emailaddress", "value"=>set_value("emailaddress"));
    echo form_input("type"=>"submit", "name"=>"submit", "value"=>"Submit");
    echo form_close();
?>

控制器:register.php

public function register (){
  $this->load->view("TableSample");
  if($this->input->post("submit")) {
    /** retrieve input details, pass them as array to model, then redirect if registration is successful**/
  }
}

但是因为我必须使用Twig,所以事情有点不同。

public function register () {
   $detail["form_open"] = form_open("", array("name"=>"form_reg", "method"=>"post", "id"=>"form_reg"));
   $detail["form_input_name"] = form_input("type"=>"text", "name"=>"fname");
   $detail["form_input_lname"] = form_input("type"=>"text", "name"=>"lname");
   $detail["form_input_eadd"] = form_input("type"=>"text", "name"=>"email");
   $detail["form_input_submit"] = form_input("type"=>"submit", "name"=>"submit", "value"=>"Submit");
   $detail["form_close"] = form_close();

   //codes for saving here

   //call twig view
   $this->twig->display("tableSample.html.twig", $detail);
}

tableSample.html.twig会是这样的:

<html>
<head></head>
<body>
  {{ form_open }} //will display form as a **String** and not THE **HTML** like this:
    <form method="post" name="form_reg" id="form_reg"></form>
  {{ form_close }} 
</body>
</html>

我知道我错过了什么,请指出正确的渲染方式。谢谢!

1 个答案:

答案 0 :(得分:2)

好吧,我想我明白了。 raw使它成为可能。 Twig Raw Filter