我有Symfony2的问题.一切正常,有一天......开始出现问题......
当我打开一个页面时,我得到错误500.服务器返回此错误,而不是Symfony.如果我刷新,我显示页面没有错误.但是,当我打开一个新页面(新网址,同一网站)时,错误再次出现.
我试图重新加载apache.我尝试删除缓存和日志中的所有内容.我的控制台文件,app.php文件,app_dev.php文件已取消注释umask(0000).
当我有错误时,这是symfony2日志的最后一行:
[2015-09-04 11:20:57] event.DEBUG: Notified event "kernel.response" to listener "JMS\I18nRoutingBundle\EventListener\CookieSettingListener::onKernelResponse". [] []
[2015-09-04 11:20:57] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\Security\Http\Firewall\ContextListener::onKernelResponse". [] []
[2015-09-04 11:20:57] security.DEBUG: Write SecurityContext in the session [] []
[2015-09-04 11:20:57] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bridge\Monolog\Handler\FirePHPHandler::onKernelResponse". [] []
[2015-09-04 11:20:57] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Bridge\Monolog\Handler\ChromePhpHandler::onKernelResponse". [] []
[2015-09-04 11:20:57] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\ResponseListener::onKernelResponse". [] []
[2015-09-04 11:20:57] event.DEBUG: Notified event "kernel.response" to listener "Symfony\Component\HttpKernel\EventListener\EsiListener::onKernelResponse". [] [] …Run Code Online (Sandbox Code Playgroud) 当我尝试从事件PRE_SET_DATA获取数据时,我得到了具有良好价值的对象,但我无法使用它.
这是我的测试代码:
$builder->addEventListener(
FormEvents::PRE_SET_DATA,
function(FormEvent $event) use ($factory){
$data = $event->getData();
print_r($data);
}
);
Run Code Online (Sandbox Code Playgroud)
这会返回一个长文本:
"你\ CommercantBundle\Entity\LivraisonChoix对象([id:YOU\CommercantBundle\Entity\LivraisonChoix:private] => 22 ......"
但是当我使用吸气剂时:
$builder->addEventListener(
FormEvents::PRE_SET_DATA,
function(FormEvent $event) use ($factory){
$data = $event->getData();
print_r($data->getId());
}
);
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
FatalErrorException:错误:在非对象上调用成员函数getId()
我如何访问数据?
这适用于PRE_BIND事件.
我想绑定nodejs到一个网址,如下所示:http://myproject.com/nodejs/
目前,我在端口8080中有节点.
我有nginx配置:
upstream app {
server 127.0.0.1:8080;
}
server {
listen 80; ## listen for ipv4; this line is default and implied
root /home/myproject/www;
index index.html index.htm;
server_name myproject.com;
location /nodejs/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://app/;
proxy_redirect off;
}
}
Run Code Online (Sandbox Code Playgroud)
当我打开网址时,我得到:
Welcome to socket.io.
Run Code Online (Sandbox Code Playgroud)
连接还可以.
但是,当我尝试在我的网站连接时,我得到这个:
GET http://myproject.com/socket.io/1/?t=1385767934694 404 (Not Found) socket.io.js:1659
Run Code Online (Sandbox Code Playgroud)
这是我的网站连线:
var socket = io.connect('http://myproject.com/nodejs/');
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点 ?