echoing变量获取“资源ID”

时间:2013-02-10 22:59:07

标签: symfony twig

使用symfony2我加载一些实体,然后尝试在树枝模板中迭代它们。

但是,我得到以下内容而不是变量内容:

Resource id #23

我的twig模板如下所示:

<ol>
{% for post in posts %}
    <li>
        <div>
            {{ post.content }}
        </div>
    </li>
{% endfor %}
</ol>

我的控制器代码是:

$repository = $this->getDoctrine()
    ->getRepository('AppPostBundle:Post');

$reviews = $repository->findBy(
    array('title' => 'my title'))
;

2 个答案:

答案 0 :(得分:1)

对于这个答案来说可能为时已晚(肯定是LOL)但我最近遇到了同样的问题,问题是blob数据类型被视为缓冲区,所以你必须使用缓冲区函数读取信息。

在您的实体Post代码中,您可以添加以下方法:

public function readContent(){
    $content = '';
    while(!feof($this->getContent())){
        $content.= fread($this->getContent(), 1024);
    }
    rewind($this->getContent());
    return $content;
}

然后在您的观看中,您可以使用readcontent方法而不是content

<ol>
{% for post in posts %}
    <li>
        <div>
            {{ post.readcontent }}
        </div>
    </li>
{% endfor %}
</ol>

迟到总比没有好。)

答案 1 :(得分:0)

我的实体名称是:'测试'

Blob类型字段为:'Details'

in'/src/Vendorname/Bundlename/Entity/entityname.php'

 **
 * Get details
 *
 * @return string 
 */
public function getDetails()
{
    return $this->details;
}
/**
 * Reading the blob type of content.
 * @return data
 */
public function readDetails(){
  $details = '';
  while(!feof($this->getDetails())){
    $details.= fread($this->getDetails(), 1024);
   }
  rewind($this->getDetails());
  return $details;
}

和'* .html.twig'文件

{% for match in matches %} 
    {{match.readdetails}}
{%endfor%}