繁体   English   中英

在树枝模板中显示symfony2对象值

[英]displaying symfony2 object values in twig template

我在将对象值传递到我的树枝模板时遇到问题。

这是一些显示对象内容的控制器代码:

if (!$request->isXmlHttpRequest()) {
            $manejador = new Manejador();
            $temas=new ArrayList();
            $temas=$manejador->scrollingAjax();
            return $this->render(
                    'UsuarioBundle:Default:index.html.twig',
              array(
                    'temas'=>$temas));
        } 

在这里,我的Arraylist代码。

class ArrayList {
    private $list = array();
    public function Add($obj)
    {
    ....
    }
    public function Remove($key)
    {
       ...
    }

    public function Size()
    {
     ....
    }

    public function IsEmpty()
    {
    ....
    }

    public function GetObj($key)
    {
    .....
    }

    public function GetKey($obj)
    {
    .....
    }
    }

这是我的Tema类代码

class Tema {
    private $texto;
    private $titulo;
    private $usuario;
    private $fecha;
    private $numeroRespuesta;

    function getnumeroRespuesta(){
        return $this->numeroRespuesta;
    }

    function getUsuario(){
        return $this->usuario;
    }
    function getTitulo(){
        return $this->titulo;
    }
    function getTexto(){
        return $this->texto;
    }
   ......

然后在我的树枝模板中,我想显示'tema'的值,但结果为空值

</thead>
    <tbody id="cuerpo-tabla">
        <tr>
        {% for tema in temas %}
           <th width="10%">{{ tema.fecha  }}</th>
           <th width="70%">{{ tema.titulo }}</th>
           <th width="10%">{{ tema.usuario }}</th>
           <th width="10%">{{ tema.numeroRespuesta }}</th>

            {% endfor %}
        </tr>
    </tbody>

当我做var_dump($ temas)时,结果是:

object(people\UsuarioBundle\Modelo\Tema)[287]
      private 'texto' => string '' (length=0)
      private 'titulo' => string 'titulo1?' (length=37)
      private 'usuario' => string 'PlayBackWow' (length=11)
      private 'fecha' => string '21:27' (length=5)
      private 'numeroRespuesta' => string '0' (length=1)
  1 => 
    object(people\UsuarioBundle\Modelo\Tema)[286]
      private 'texto' => string '' (length=0)
      private 'titulo' => string 'titulo2' (length=25)
      private 'usuario' => string 'OsoMiltro' (length=9)
      private 'fecha' => string '21:31' (length=5)
      private 'numeroRespuesta' => string '0' (length=1)
  2 => 

似乎您正在尝试迭代$temas变量,该变量是一个没有公共属性的ArrayList对象。 此外,预期的行为是迭代我认为的其内部$list属性。 为了使ArrayList对象可在foreach上下文中使用,请尝试实现Traversable及其具体的子接口。 更好的是,对于简单的要求,您可以:

  • 只需使用一个简单的本地php array
  • 使用ArrayObject

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM