小编Con*_*tch的帖子

获取Symfony 2中的所有请求参数

在symfony 2控制器中,每次我想从帖子中获取值时我都需要运行:

$this->getRequest()->get('value1');
$this->getRequest()->get('value2');
Run Code Online (Sandbox Code Playgroud)

有没有办法将这些合并到一个会返回数组的语句中?像Zend的getParams()之类的东西?

php request symfony

66
推荐指数
2
解决办法
10万
查看次数

访问symfony 2中的AppKernel环境变量

我正在使用symfony 2,我们有2个配置,dev和prod.我需要知道我是否可以找出在实体或模型中使用哪一个.

我正在寻找与AppKernel.php中的代码类似的东西:

$this->getEnvironment()
Run Code Online (Sandbox Code Playgroud)

如果我可以加载内核来调用它会很好但我找不到办法来做到这一点.看一下这看起来似乎symfony事件可能会返回内核,但我不知道如何或在何处捕获这些事件,以便我可以在它们上调用getKernel().http://symfony.com/doc/current/book/internals.html

例如,他们列出了这个例子:

使用Symfony\Component\HttpKernel\Event\FilterControllerEvent;

public function onKernelController(FilterControllerEvent $event)
{
    $controller = $event->getController();
    // ...

    // the controller can be changed to any PHP callable
    $event->setController($controller);
}
Run Code Online (Sandbox Code Playgroud)

我不清楚在哪里放这个代码块.在我看来,它应该进入内核,如果我有内核,我不会遇到这个问题.

我的问题是,是否有一种简单的方法可以确定我是从服务还是模型中的内核中设置的'dev'或'prod'.谢谢

php configuration symfony

27
推荐指数
2
解决办法
4万
查看次数

在jquery选项卡加载后调用事件

我正在使用jQuery选项卡.其中一个选项卡是一个所见即所得的编辑器,需要在显示选项卡后刷新,但我无法确定是否有一个事件在加载选项卡后触发.

根据我的理解,load事件仅适用于使用ajax调用的选项卡.我已经尝试过使用它但它不会触发: jQuery ui tabs load/tabsload事件不会触发

在该示例中,他们使用iframe,其具有触发的加载事件.我只是使用没有加载事件的div,而不像onshow事件监听器.

我能够得到的最接近的是tabsselect事件,该事件在单击选项卡时触发,但在加载新选项卡之前触发.

当我不使用ajax时,是否有任何事件在加载选项卡后触发?

谢谢

jquery jquery-ui jquery-tabs

12
推荐指数
2
解决办法
2万
查看次数

Symfony 2使用POST重定向

在Symfony 2中,我在Controller中有以下代码:

// prepare to render the seller info panel
$response = array(
    'data' => $data,
);

// render the seller info panel
return $this->redirect($this->generateUrl('route', $response));
Run Code Online (Sandbox Code Playgroud)

路线是:

route:
    pattern:  /listing/complete/{data}
    defaults: { _controller: FooBundle:Foo:action }
    requirements:
        _method:  POST
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为重定向正在发出GET请求.我也尝试过这种模式,但它与路线不匹配:

route:
    pattern:  /listing/complete
    defaults: { _controller: FooBundle:Foo:action }
    requirements:
        _method:  POST
Run Code Online (Sandbox Code Playgroud)

我发现路由文档没有用.有没有办法可以让重定向发出POST请求?路线会是什么样的,我是否必须在控制器中做任何事情才能实现?

php request symfony

12
推荐指数
2
解决办法
4万
查看次数

为什么firefox会在下载文件之前阻止?

Firefox运行我的网站明显慢于IE或Chrome.当我检查网络选项卡时,我看到235ms用于阻止.我的网站在Chrome中没有报告阻止,并且在Firefox中没有为其他网站报告阻止,例如谷歌或亚马逊.它还具有比铬更高的接收时间.

Firefox会阻止该文档

我的理解是阻塞发生是因为浏览器可以进行有限数量的连接:

Firebug Net Panel中"阻塞"的含义是什么?

以下是在文档之前阻止网站的示例:http://thehill.com/(提前抱歉政治).此网站上的阻止并不总是发生(它在我的网站上发生)并且大约是我网站上阻止长度的十分之一.

在尝试下载文档时,浏览器是否应始终提供所有连接?为什么firefox会阻止文件而不是chrome,我该如何解决?

performance firefox google-chrome request pageload

7
推荐指数
1
解决办法
420
查看次数

你如何让Smarty3与Symfony2合作?

我正在尝试让Smarty 3作为Symfony 2的模板引擎.我正在尝试安装此捆绑包以使smarty 3工作:

https://github.com/noiselabs/SmartyBundle

它安装得很好,但是当我按照安装说明中的说法将它添加到AppKernal时,我收到以下错误:

致命错误:第20行的> /home/kevin/workspace/Symfony/app/AppKernel.php中找不到类'NoiseLabs\Bundle\SmartyBundle'

其中第20行在registerBundles()中:new NoiseLabs\Bundle\SmartyBundle(),

第二个可能相关的问题是在app/config/config.yml中,如果我在模板引擎数组中添加'smarty':

templating:      { engines: ['twig'] }
Run Code Online (Sandbox Code Playgroud)

它会抛出此错误:

ServiceNotFoundException:服务"模板化"依赖于不存在的>服务"templating.engine.smarty".

我意识到twig带有symfony但是对于这个项目我需要使用smarty.我错过了什么或是否有其他解决方案?

这是内核代码:

<?php

use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\Config\Loader\LoaderInterface;

class AppKernel extends Kernel
{
    public function registerBundles()
    {   
        $bundles = array(
            new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
            new Symfony\Bundle\SecurityBundle\SecurityBundle(),
            new Symfony\Bundle\TwigBundle\TwigBundle(),
            new Symfony\Bundle\MonologBundle\MonologBundle(),
            new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
            new Symfony\Bundle\DoctrineBundle\DoctrineBundle(),
            new Symfony\Bundle\AsseticBundle\AsseticBundle(),
            new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
            new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),
//new NoiseLabs\Bundle\SmartyBundle(),
            new Blog\EntryBundle\BlogEntryBundle(),
        );  

        if (in_array($this->getEnvironment(), array('dev', 'test'))) {
            $bundles[] = new Acme\DemoBundle\AcmeDemoBundle();
            $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
            $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
            $bundles[] = new …
Run Code Online (Sandbox Code Playgroud)

smarty symfony smarty3

2
推荐指数
1
解决办法
4328
查看次数

如何阻止Joomla包含jQuery?

我最近从Joomla 3.2.1升级到Joomla 3.2.2.

在Joomla 3.2.1中,我手动取消设置jQuery:

$doc = JFactory::getDocument();

$dontInclude = array(
'/media/jui/js/jquery.js',
'/media/jui/js/jquery.min.js',
'/media/jui/js/jquery-noconflict.js',
'/media/jui/js/jquery-migrate.js',
'/media/jui/js/jquery-migrate.min.js',
'/media/jui/js/bootstrap.js',
'/media/system/js/core-uncompressed.js',
'/media/system/js/tabs-state.js',
'/media/system/js/core.js',
'/media/system/js/mootools-core.js',
'/media/system/js/mootools-core-uncompressed.js',
);
foreach($doc->_scripts as $key => $script){
    if(in_array($key, $dontInclude)){
        unset($doc->_scripts[$key]);
    }
}
Run Code Online (Sandbox Code Playgroud)

但这不适用于Joomla 3.2.2.有没有办法在3.2.2中不包含Joomla的jQuery?

joomla joomla3.0

1
推荐指数
1
解决办法
9003
查看次数

javascript中出现意外的嵌套循环行为

我正在实现一种排序,我遇到了一些意想不到的行为:

var searches = ['beta', 'alpha'];
var i = 0; j = 0;

for(i = 0; i < searches.length; i++){
        min = i;

        // first time through, i = 0
         alert(i); 
        for(j = i; j<searches.length; j++);
        {
            // first time through j = 2. If i = 0, how does j = 2?
             alert(j); 
            // .. sort code
        }
}
Run Code Online (Sandbox Code Playgroud)

事实上,j总是2.为什么当进入for循环时j不被设置为i?

这是jsfiddle:http: //jsfiddle.net/w2kK9/3/

javascript

0
推荐指数
1
解决办法
68
查看次数