如何检查类别是否不存在?

问题描述:

我有一个博客帖子的网址如下:如何检查类别是否不存在?

/blog/testing-url

这是链接到一个类别&该类别已被删除!我现在想要的是显示帖子。这篇文章的类别已被删除,但我如何检查类别是否不存在?我尝试了以下方法

if(isset($ category))但这不起作用。

错误:

Fatal error: Call to a member function getCategory() on a non-object in /httpdocs/apps/mainv2/modules/blog/actions/actions.class.php on line 168

这是一段代码,其中的错误发生:

public function executeEdit(sfWebRequest $request) { #edit video 
    ... 

    $this->nrpag = $request->getParameter('nrpag', 1); 
    $cats = array(); #video_cat 
    $c = new Criteria(); 
    $c->addAscendingOrderByColumn(VideoCatPeer::CATEGORY); 
    $vcats = VideoCatPeer::doSelect($c); 
    foreach ($vcats as $vcat) { 
     if($vcat != NULL){ 
      $cats[$vcat->getId()] = $vcat->getCategory(); 
     }else{ 
      continue; 
     } 
    } 
    $this->cats = $cats; 

    ... 
    } 
+0

*“if(isset($ category)),但这是行不通的。”* - 我看不到'$ category'的定义。 –

+0

@FunkFortyNiner添加代码 –

+1

是的,您提供的代码片段不会显示$ category变量,也不会显示调用的getCategory方法。你确定你从actions.class.php中取出了代码吗? –

可以检查对象$vcat是否具有Category实体的实例,并做一些这种情况。例如:

foreach ($vcats as $vcat) { 
    if($vcat != NULL && $vcat->getCategory() instanceof Category){ 
     $cats[$vcat->getId()] = $vcat->getCategory(); 
    } 
} 

我还没试过只是一个虽然。让我知道如果工作