2

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

但是,我得到的不是可变内容:

Resource id #23

我的树枝模板如下所示:

<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'))
;
4

2 回答 2

2

也许这个答案为时已晚(肯定是 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>

迟到总比没有好:)

于 2013-05-24T16:47:19.737 回答
1

我的实体名称是:“测试”

Blob 类型字段为:“详细信息”

在'/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%}
于 2014-07-08T09:41:43.437 回答