symfony2没有路由工作

时间:2015-04-06 12:03:38

标签: php symfony lamp kubuntu

最后更新:

这也改变了混乱的drupal,所以我重新安装了xampp,我没有遇到这个问题,我认为这个问题已经关闭了。

更新:

很奇怪我处理了页面上显示的错误。我摆脱了这条线:抛出0<数($允许)? new MethodNotAllowedException(array_unique($ allow)):new ResourceNotFoundException(); [1/2] ResourceNotFoundException:

似乎有效

但是当我删除了classes.php中的第2117行(elseif所以3行

  elseif (is_object($controller)) {
  $repr = get_class($controller);
  }

) 在/opt/lampp/htdocs/Symfony/app/cache/dev/classes.php即使我把elseif放回去,我也会收到新的错误...

这里有消息:

箍,看起来像是出了问题。 classes.php第2117行中的1/1 FatalErrorException:解析错误:语法错误,意外' elseif' (T_ELSEIF)

在classes.php第2117行


我开始在Symfony2工作,因为我的第一次专业经验,但奇怪的是这次我在我的灯/ Kubuntu上工作时遇到了问题。

这是我尝试的内容:

下载了:symfony_Standard_Vendors_2.6.4.zip(因此它在zip文件中)是kunbutu下载文件夹 mv Symfony ../../../ var / www

这些网址不起作用:

http://localhost/Symfony/web/app_dev.php/hello/winzou http://localhost/Symfony/web/app_dev.php/hello/World

显示的两个页面的错误(除了Get / hello / ..的明显部分之外)是:  错误 - 未捕获的PHP异常Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException:"找不到" GET / hello / winzou"" at /opt/lampp/htdocs/Symfony/app/cache/dev/classes.php line 2017

in app/cache/dev/classes.php at line 2017  -

if ($referer = $request->headers->get('referer')) {
$message .= sprintf(' (from "%s")', $referer);
}
throw new NotFoundHttpException($message, $e);
} catch (MethodNotAllowedException $e) {
$message = sprintf('No route found for "%s %s": Method Not Allowed (Allow: %s)', $request->getMethod(), $request->getPathInfo(), implode(', ', $e->getAllowedMethods()));
throw new MethodNotAllowedHttpException($e->getAllowedMethods(), $message, $e);

at RouterListener ->onKernelRequest (object(GetResponseEvent), 'kernel.request', object(TraceableEventDispatcher))
at call_user_func (array(object(RouterListener), 'onKernelRequest'), object(GetResponseEvent), 'kernel.request', object(TraceableEventDispatcher))
in vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/WrappedListener.php at line 61  +
at WrappedListener ->__invoke (object(GetResponseEvent), 'kernel.request', object(ContainerAwareEventDispatcher))
at call_user_func (object(WrappedListener), object(GetResponseEvent), 'kernel.request', object(ContainerAwareEventDispatcher))
in app/cache/dev/classes.php at line 1790  +
at EventDispatcher ->doDispatch (array(object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener)), 'kernel.request', object(GetResponseEvent))
in app/cache/dev/classes.php at line 1723  +
at EventDispatcher ->dispatch ('kernel.request', object(GetResponseEvent))
in app/cache/dev/classes.php at line 1884  +
at ContainerAwareEventDispatcher ->dispatch ('kernel.request', object(GetResponseEvent))
in vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/Debug/TraceableEventDispatcher.php at line 112  +
at TraceableEventDispatcher ->dispatch ('kernel.request', object(GetResponseEvent))
in app/bootstrap.php.cache at line 3011  +
at HttpKernel ->handleRaw (object(Request), '1')
in app/bootstrap.php.cache at line 2984  +
at HttpKernel ->handle (object(Request), '1', true)
in app/bootstrap.php.cache at line 3133  +
at ContainerAwareHttpKernel ->handle (object(Request), '1', true)
in app/bootstrap.php.cache at line 2377  +
at Kernel ->handle (object(Request))
in web/app_dev.php at line 28  +

和:

[2/2] NotFoundHttpException:找不到" GET / hello / World" +

if ($referer = $request->headers->get('referer')) {
$message .= sprintf(' (from "%s")', $referer);
}
throw new NotFoundHttpException($message, $e);
} catch (MethodNotAllowedException $e) {
$message = sprintf('No route found for "%s %s": Method Not Allowed (Allow: %s)', $request->getMethod(), $request->getPathInfo(), implode(', ', $e->getAllowedMethods()));
throw new MethodNotAllowedHttpException($e->getAllowedMethods(), $message, $e);


if ($referer = $request->headers->get('referer')) {
$message .= sprintf(' (from "%s")', $referer);
}
throw new NotFoundHttpException($message, $e);
} catch (MethodNotAllowedException $e) {
$message = sprintf('No route found for "%s %s": Method Not Allowed (Allow: %s)', $request->getMethod(), $request->getPathInfo(), implode(', ', $e->getAllowedMethods()));
throw new MethodNotAllowedHttpException($e->getAllowedMethods(), $message, $e);

[1/2] ResourceNotFoundException: -

in app/cache/dev/appDevUrlMatcher.php at line 244  -
            }
            throw 0 < count($allow) ? new MethodNotAllowedException(array_unique($allow)) : new ResourceNotFoundException();
        }
    }

它并不漂亮,但这是整个页面显示的内容:


的Symfony 在Symfony网站上搜索 检测到异常! 找不到&#34; GET / hello / World&#34; 找不到404 - NotFoundHttpException 1个链接异常:

ResourceNotFoundException »

[2/2] NotFoundHttpException:找不到&#34; GET / hello / World&#34; + [1/2] ResourceNotFoundException:+ 日志 - 1错误

ERROR - Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /hello/World"" at /opt/lampp/htdocs/Symfony/app/cache/dev/classes.php line 2017
DEBUG - Notified event "kernel.request" to listener "Symfony\Component\EventDispatcher\Debug\WrappedListener::__invoke".
DEBUG - Notified event "kernel.request" to listener "Symfony\Component\EventDispatcher\Debug\WrappedListener::__invoke".
DEBUG - Notified event "kernel.request" to listener "Symfony\Component\EventDispatcher\Debug\WrappedListener::__invoke".
DEBUG - Notified event "kernel.request" to listener "Symfony\Component\EventDispatcher\Debug\WrappedListener::__invoke".
DEBUG - Notified event "kernel.request" to listener "Symfony\Component\EventDispatcher\Debug\WrappedListener::__invoke".
DEBUG - Notified event "kernel.request" to listener "Symfony\Component\EventDispatcher\Debug\WrappedListener::__invoke".
DEBUG - Notified event "kernel.request" to listener "Symfony\Component\EventDispatcher\Debug\WrappedListener::__invoke".
DEBUG - Notified event "kernel.request" to listener "Symfony\Component\EventDispatcher\Debug\WrappedListener::__invoke".
DEBUG - Notified event "kernel.request" to listener "Symfony\Component\EventDispatcher\Debug\WrappedListener::__invoke".
DEBUG - Notified event "kernel.request" to listener "Symfony\Component\EventDispatcher\Debug\WrappedListener::__invoke".
DEBUG - Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController".
DEBUG - Notified event "kernel.controller" to listener "Acme\DemoBundle\EventListener\ControllerListener::onKernelController".
DEBUG - Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController".
DEBUG - Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\ControllerListener::onKernelController".
DEBUG - Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\ParamConverterListener::onKernelController".
DEBUG - Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\HttpCacheListener::onKernelController".
DEBUG - Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\SecurityListener::onKernelController".
DEBUG - Notified event "kernel.controller" to listener "Sensio\Bundle\FrameworkExtraBundle\EventListener\TemplateListener::onKernelController".

堆栈跟踪(纯文本)+


所以我的猜测是要更改classes.php的2017行,但要放什么?

我也按照教程的建议尝试使用Symfony文件夹:

chmod 777 -R app / cache chmod 777 -R app / logs

还是同样的问题......


app / config / routes确实是空的,没有路由文件夹我应该放什么?我如何看待dev和prod之间的区别?

尝试设置2和3并在步骤3中得到它:

[路由器]当前路线   名称方法方案主机路径
  _wdt任何/ _wdt / {令牌}
  _profiler_home任何任何/ _profiler /
  _profiler_search任何任何/ _profiler / search
  _profiler_search_bar ANY ANY / _profiler / search_bar
  _profiler_purge任何任何/ _profiler / purge
  _profiler_info ANY ANY ANY / _profiler / info / {about}
  _profiler_phpinfo任何任何/ _profiler / phpinfo
  _profiler_search_results ANY ANY ANY / _profiler / {token} / search / results
  _profiler任何ANY / _profiler / {token}
  _profiler_router任何/ _profiler / {token} / router
  _profiler_exception任何ANY / _profiler / {token} / exception
  _profiler_exception_css任何/_profiler/{token}/exception.css中的任何一个   _configurator_home任何ANY / _configurator /
  _configurator_step任何ANY / _configurator / step / {index}
  _configurator_final ANY ANY / _configurator / final
  _twig_error_test任何问题/_error/ {code}。{_ format}   主页ANY ANY ANY / app / example
  _欢迎任何人   _demo_login任何任何/演示/安全/登录
  _demo_security_check任何ANY / demo / secured / login_check
  _demo_logout任何任何/演示/安全/注销的任何内容   acme_demo_secured_hello任何任何/演示/安全/你好的任何人   _demo_secured_hello任何ANY / demo / secured / hello / {name}
  _demo_secured_hello_admin ANY ANY ANY / demo / secured / hello / admin / {name}
  _demo任何ANY / demo /
  _demo_hello任何ANY / demo / hello / {name}
  _demo_contact ANY ANY ANY / demo / contact

更新:

很奇怪我处理了页面上显示的错误。我摆脱了这条线:抛出0&lt;数($允许)? new MethodNotAllowedException(array_unique($ allow)):new ResourceNotFoundException(); [1/2] ResourceNotFoundException:

似乎有效

但是当我在/opt/lampp/htdocs/Symfony/app/cache/dev/classes.php中删除classes.php中的第2117行(elseif所以3行)时,即使我放了elseif,也会出现新的错误回来......


这里有消息:

箍,看起来像是出了问题。 classes.php第2117行中的1/1 FatalErrorException:解析错误:语法错误,意外&#39; elseif&#39; (T_ELSEIF)

in classes.php line 2117

由于我只在var / www中开始安装,而不是选择/我没有任何帮助,欢迎任何帮助!

1 个答案:

答案 0 :(得分:0)

  1. 检查app / config / routes(dev和base)
  2. 在主文件夹中运行命令app/console cache:clear测试其是否正常工作
  3. 在主文件夹中运行命令app/console route:debug查看是否列出了您的路线