Thelia:我如何通过URL查询类别?

时间:2017-02-23 02:38:37

标签: symfony

Thelia新手在这里。我只是试图通过其(英文)URL查询类别。我可以RewritingUrlQuery找到正确的rewriting_url行,但我无法弄清楚如何将其合并到CategoryQuery

这是我到目前为止所拥有的:

public function showAction($slug) {
  $urlFilter = RewritingUrlQuery::create()
    ->filterByUrl($slug);

  $category = CategoryQuery::create()
    ->filterBy('url', $urlFilter)
    ->findOne();

毫不奇怪,这失败了,错误消息"模型Thelia \ Model \ Category"中的未知列url。我想知道我应该使用除CategoryQuery以外的filterBy方法,还是稍微不同的方法来查询类别?我无法想象Thelia / Symfony没有提供一种简单的方法...

1 个答案:

答案 0 :(得分:1)

事实证明这很简单,我怀疑! :)

我只需从返回的viewId对象中获取RewritingUrl(URL中表示的类别的ID),然后在CategoryQuery中使用该ID:

$urlFilter = RewritingUrlQuery::create()
  ->filterByView('category')
  ->filterByUrl($slug)
  ->findOne();

$category = CategoryQuery::create()
  ->filterById($urlFilter->getViewId())
  ->findOne();

请注意,此处我还在第一个方法链中添加了filterByView('category')调用,以表明我真的只关心类别网址。