Warning: preg_match() [function.preg-match]: Compilation failed: subpattern name is too long (maximum 32 characters) at offset 71 in ......\lib\vendor\symfony\lib\routing\sfRoute.class.php on line 100
在打开利用symfony自动生成的后台某模块的list页面时报错了,奇怪的是有些页面有问题,有些页面是正常的,难道这个问题跟数据库表的字段有关(MySql)?
有没有高手遇到这种问题?。

解决方案 »

  1.   

    请问lsd应该怎么理解这个"subpattern"呢?
      

  2.   

    把你的route配置贴几行看看,是不是有特别复杂的匹配条件。
      

  3.   

    应该不是route的配置问题吧,后台开发模式才会报错,就是backend_dev.php报错,而backend.php是正常的。
      

  4.   

    你这个是个warning,一般也就是在dev模式会显示warning,在prod模式,一般都是抑制这些错误、警告输出的。
      

  5.   

    哦,多谢TR@SOE
    lib\vendor\symfony\lib\routing\sfRoute.class.php on line 100 
    我贴这个warning的错误位置出来吧。public function matchesUrl($url, $context = array())
      {
        if (!$this->compiled)
        {
          $this->compile();
        }    if (!preg_match($this->regex, $url, $matches))   //////第100行在这里!!!!
        {
          return false;
        }    $defaults   = array_merge($this->getDefaultParameters(), $this->defaults);
        $parameters = array();    // *
        if (isset($matches['_star']))
        {
          $parameters = $this->parseStarParameter($matches['_star']);
          unset($matches['_star']);
        }    // defaults
        $parameters = $this->mergeArrays($parameters, $defaults);    // variables
        foreach ($matches as $key => $value)
        {
          if (!is_int($key))
          {
            $parameters[$key] = urldecode($value);
          }
        }    return $parameters;
      }
      

  6.   

    贴这个没有太大的帮助。还是要看你的routing.yml文件,是不是有些路径映射规则太复杂了。
      

  7.   

    那文件的行数太多了,lsd的大虾是否能留个邮箱,我发给你看看,谢谢了!
      

  8.   

    我看了一下你的routing.yml,看不出有什么大的问题。由于你基本是采用sfPropelRouteCollection的方式自动生成url mapping,所以也看不出你最后生成的实际的url是虾米。不过,你既然提到是在某个后台的list动作时出现这个warning,那么我猜想这个uri应该是类似:localhost/frontend_dev.php/module_name/:param/list你列出这个特别的module/param,看看是不是长度超过了32个字符。这个可能是和你后台数据库的数据有关系的了。
      

  9.   

    http://localhost/backend_dev.php/activityChargeItem
    http://localhost/backend_dev.php/city
    唉,很郁闷,上面两个链接都会报那个warning,真奇怪。报warning的module页面不只一个,是很多个呢。
      

  10.   

    晕,高手快来啊
    感觉国内用symfony的人还是很少。T^T
      

  11.   

    问题解决了是routing.yml的问题,哈哈!