如何设置SeoBundle并提取标题?

时间:2014-12-13 11:20:25

标签: php symfony seo

我不能让SeoBundle从我的照片中提取标题

我已配置" content_key"在config.yml

cmf_seo:
    content_key: "mykey"
    title: "%%content_title%%" 

我的实体实现了TitleReadInterface

  class Picture implements TitleReadInterface {
  (...)

   public function getSeoTitle()
   {
      return $this->title;
   }

  (...)
}

在控制器中我正在更新" mykey"属性:

public function viewAction(Request $request, $slug) {
    (...)

    $picture =  $repository->findOneBySlug($slug);

    $request->attributes->set('mykey', $picture);

    (...)

}

最后在视图中有:

 {{ sonata_seo_title() }}

但页面标题是" Sonata Project" :( 有什么问题?

1 个答案:

答案 0 :(得分:2)

最后我发现,这个捆绑包更适合DynamicRouter,如果你不使用DynamicRouter(就像我的情况一样),你必须以另一种方式提供内容对象。我的解决方案是从控制器手动触发SeoPresentation过程:

public function viewAction(Request $request, $slug) {
  (...)

  $picture =  $repository->findOneBySlug($slug);

  $seo = $this->get('cmf_seo.presentation');
  $seo->updateSeoPage($picture);

  (...)

}