我正在开发一个symfony网站,它几乎每天都会停止运行,因此我必须清除缓存并chmod所有缓存文件夹内容以解决问题。
清除缓存是我的快速解决方案,但有时却无法完成任务
另外我认为该网站没有完全崩溃,它仍然适用于某些用户,但不适用于其他用户(他们叫我解决问题,但当我访问该网站时,它对我有效)
在prod日志文件中,我收到一个我不明白的错误:
[2015-10-08 16:43:18] request.INFO:匹配路线“产品”。 { “route_parameters”:{ “_控制器”: “FM \ FmBundle \控制器\的HomeController :: productAction”, “_路线”: “产品”}, “REQUEST_URI”: “https://first1-market.com/product/puma-pu102601002u”} []
[2015-10-08 16:43:18] security.INFO:填充了TokenStorage 用匿名令牌。 [] []
[2015-10-08 16:43:18] request.CRITICAL: 未捕获的PHP异常RuntimeException:“控制器 “FM \ FmBundle \ Controller \ HomeController :: productAction()”要求 你为“$ product_slug”参数提供了一个值(因为有 没有默认值,或者之后有一个非可选参数 这个)。“at /home/firstmarlo/app/cache/prod/classes.php 2595行 {“exception”:“[object](RuntimeException(code:0):Controller \“FM \ FmBundle \ Controller \ HomeController :: productAction()\”需要 你为\“$ product_slug \”参数提供了一个值(因为 没有默认值,或者因为存在非可选参数 在此之后)。在 /home/firstmarlo/app/cache/prod/classes.php:2595)"} []
产品路线
product:
path: /product/{product_slug}
defaults: { _controller: FMFmBundle:Home:product }
产品行动
public function productAction($product_slug)
{
$product=$this->getDoctrine()->getEntityManager()->getRepository('FMFmBundle:Products')->findOneBy(array('slug'=>$product_slug));
$collection=$product->getCategory()->getCollection();
return $this->render('FMFmBundle:Product:index.html.twig',array('product'=>$product,'color'=>$collection->getColor()));
}
此操作的链接
{% for product in FmarketProductService.getRecommanded() %}
<a href="{{ url('product',{'product_slug': product.slug})}}">
这项工作很好,但我不知道为什么我在日志文件中收到此错误以及为什么网站完成了 解决这个问题的任何想法或解决方法?
答案 0 :(得分:1)
问题是在实体记录的某处,没有生成的slu .. 当我使用遗留项目中的导入数据时,我遇到了同样的问题。
最好的想法是创建再生slu的命令。
查看http://symfony.com/doc/current/components/console/introduction.html
在我的命令中,我做了类似的事情
salt-cloud -m mapfile-vagrant.yml
我的slu are基于标题字段