小编sko*_*oft的帖子

Symfony2:如何在使用FOSUserBundle时在控制器内获取用户对象?

我正在使用FOSUserBundle来验证我的用户.

我正在尝试获取Controller内的用户对象来注册一个行程,我应该在保存之前将用户对象添加到此Trip.

我没有找到如何做到这一点因为我在symfony doc中找到它的下一个方法:

$user = $this->container->get('security.context')->getToken()->getUser();
Run Code Online (Sandbox Code Playgroud)

将用户名呈现为字符串,但我需要整个对象.

目前,我使用此方法,但它无法正常工作.

$username = $this->container->get('security.context')->getToken()->getUser();
$em = $this->container->get('doctrine')->getEntityManager();
$user = $em->getRepository('SiteUtilisateurBundle:Utilisateur')->find($username);
Run Code Online (Sandbox Code Playgroud)

我怎样才能正确地做到这一点?

symfony fosuserbundle

36
推荐指数
3
解决办法
7万
查看次数

如何在奏鸣曲Admin类中获取容器实例?

我需要从config.yml解析一些配置参数,例如启用的语言.但是当我尝试使用普通的symfony方法时:$this->container->get('my_params');它失败了,因为我的管理类扩展了Sonata\AdminBundle\Admin\Admin类而不扩展Symfony\Component\DependencyInjection\ContainerAware类.

请问,如何在奏鸣曲Admin类中获取容器?

现在我通过重写奏鸣曲管理类来解决这个问题,使其扩展ContainerAware.

symfony symfony-sonata symfony-2.1 sonata-admin

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

捆绑"ApplicationSonataUserBundle"不存在或未启用

我需要安装SonataUserBundle才能安装SonataNewsBundle.

我一步一步地遵循安装教程,但是我收到了这个错误:

./app/console sonata:easy-extends:generate SonataUserBundle



  [InvalidArgumentException]                                                 
  Bundle "ApplicationSonataUserBundle" does not exist or it is not enabled.  
Run Code Online (Sandbox Code Playgroud)

捆绑包尚未生成.这个命令应该做到!

任何人都知道如何解决这个问题?

symfony symfony-sonata symfony-2.1 sonata-admin

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

PHP致命错误:第47行的/var/www/znata.com/app/AppKernel.php中找不到类'Application\Sonata\MediaBundle\ApplicationSonataMediaBundle'

我按照这个文档来安装SonataMediaBundle但是我收到了这个错误:

PHP Fatal error:  Class 'Application\Sonata\MediaBundle\ApplicationSonataMediaBundle' not found in /var/www/znata.com/app/AppKernel.php on line 47
Run Code Online (Sandbox Code Playgroud)

使用sonata命令后生成应用程序:

php app/console sonata:easy-extends:generate SonataMediaBundle
Run Code Online (Sandbox Code Playgroud)

新目录生成于:

apps/Application/Sonata/MediaBundle
Run Code Online (Sandbox Code Playgroud)

一切都已完成,但当我在AppKernel.php中注册生成的应用程序时,我收到了该错误.

public function registerbundles()
{
    return array(
        ...
        new Application\Sonata\MediaBundle\ApplicationSonataMediaBundle(),
        ...
    );
}
Run Code Online (Sandbox Code Playgroud)

你知道如何解决这个问题吗?

symfony symfony-sonata symfony-2.1 sonata-admin

13
推荐指数
3
解决办法
8231
查看次数

如何设置Varnish在端口80上运行.在/ etc/default/varnish中设置的DAEMON_OPTS故障

我已经安装了清漆并且准备了设置它的确切指令,但是,它没有按预期工作.

我的/ etc/default/varnish设置是:

DAEMON_OPTS="-a :80 \
             -T localhost:1234 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"
Run Code Online (Sandbox Code Playgroud)

我的/etc/varnish/default.vlc设置是

backend default {
    .host = "localhost";
    .port = "8080";
}
Run Code Online (Sandbox Code Playgroud)

我的apache port.conf设置是:

NameVirtualHost 127.0.0.1:8080
Listen 127.0.0.1:8080

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>
Run Code Online (Sandbox Code Playgroud)

我用Apache 2.4.10运行ubuntu 15.04.当我开始清漆并检查过程时,我得到了休息:

0:00 /usr/sbin/varnishd -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
Run Code Online (Sandbox Code Playgroud)

似乎监听地址或管理界面都不像/etc/varnish/default.vcl中设置的那样工作.我的虚拟机都不能正常工作.我怎么解决这个问题?

varnish varnish-vcl systemd apache2.4 ubuntu-15.04

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

如何在ubuntu机器上安装oracle instantclient和pdo_oci?

我需要在ubuntu机器上安装PDO_OCI,没有我可以用apt-get安装的默认包.

有很多教程展示了如何做到这一点,但是当我遵循它们时,我遇到了与编译相关的问题(configure,make,...)

我在这做了什么:

  1. 我按照本教程安装了即时客户端

  2. 安装oci8

    pecl install oci8
    
    Run Code Online (Sandbox Code Playgroud)

    我收到错误:

    错误:找不到oci.h

  3. 安装PDO_OCI

    mkdir -p /tmp/pear/download/
    cd /tmp/pear/download/
    pecl download pdo_oci
    phpize
    ./configure –with-pdo-oci=instantclient,/usr,11.2
    
    Run Code Online (Sandbox Code Playgroud)

    错误:

    找不到pdo_driver.h ...

请问您有任何在UBUNTU 12.04上完美运行的严肃教程吗?

php oracle ubuntu pdo instantclient

5
推荐指数
3
解决办法
3万
查看次数

如何增加Varnish 4和Nginx之间的超时

在提出这个问题之前,我在谷歌和世界各地搜索了几个小时试图增加Varnish 4和Nginx之间的连接超时,但没有找到解决方案.

所以这是我的清漆配置:

backend web1 {
    .host = "192.168.1.21";
    .port = "80";
    .probe = {
        .request =
        "HEAD / HTTP/1.1"
        "Host: localhost"
        "Connection: close";

        .timeout = 1s;
        .interval = 5s;
        .window = 5;
        .threshold = 3;
    }
    .connect_timeout = 300s;
    .between_bytes_timeout = 300s;
}
Run Code Online (Sandbox Code Playgroud)

这是Nginx配置:

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 0; # wait for 5 minutes before timeout the request

#       proxy_connect_timeout   60s;
#       proxy_send_timeout      300s;
#       proxy_read_timeout      300s;

        fastcgi_read_timeout    300s; …
Run Code Online (Sandbox Code Playgroud)

nginx varnish-4

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

有效约束不支持symfony2中的组选项

我需要以symfony2形式级联验证,除非指定的组.

这里symfony团队告诉有效约束https://github.com/symfony/symfony/issues/4893不支持组选项

怎么做 ?

细节:

我有一个User Entity具有address属性,它是Address Entity的外键.此外,我有实体称为业务具有用户作为属性和地址属性.我需要验证用户的地址,但是,如果用户是商家的财产,则无需验证它...

架构

Class Address {
    ...
}

Class User {
     /**
     * @Assert\Valid(groups={"user"})
     */
     private $address;
}

Class Business {
    /**
     * @Assert\Valid(groups={"business"})
     */
     private $user;
    /**
     * @Assert\Valid(groups={"business"})
     */
     private $address;
}
Run Code Online (Sandbox Code Playgroud)

所以我需要验证用户内部的地址仅用于用户表单,而不是用于业务.

谢谢

validation symfony-2.3

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

如何使用Crawler加载XML文件?

我需要加载xml文件并将它们存储到数据库中.我使用Symfony 2.1作为框架,这个framweork附带了一个很棒的工具 - 爬虫.它使XPATH变得容易.

如何使用此爬网程序加载XML文件?

你有没有一个很好的教程展示如何做到这一点?

web-crawler symfony symfony-2.1

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

SonataMediaBundle:文件""不存在500内部服务器错误 - FileNotFoundException

我使用SonataMediaBundle上传了一些文件,但是当我想添加另一个时,我收到了这个错误.

你知道吗?

这是堆栈错误:

in /var/www/znata.com/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/File/MimeType/MimeTypeGuesser.php at line 107  -+

        public function guess($path)
        {
            if (!is_file($path)) {
                throw new FileNotFoundException($path);
            }
            if (!is_readable($path)) {
Run Code Online (Sandbox Code Playgroud)

谢谢

symfony-sonata sonata-admin

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

symfony2:如何检查表单是否是新的?

我想检查我的模板中的表单是否是新的,例如 symfony 1.4 中的 $form->isNew() ,但我没有找到解决方案。

目前,我正在使用这种技术:

{% null != entity.getId %}
Run Code Online (Sandbox Code Playgroud)

它有效,但是还有其他更干净的解决方案吗?

symfony twig

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

重命名捆绑包后,未加载symfony2捆绑包扩展

我创建了一个名为PostalAddressBundle的新包,我在其中创建了一个名为ss_postal_address的服务.一切都很好.但我决定将捆绑包重命名为AddressBundle而不是PostalAddressBundle,我重命名了所有命名空间以及与之相关的所有内容.一切正常,但不是服务(ss_postal_address).

我清除了缓存,但没有任何反应..

这是services.xml文件的内容:

 <parameters>
        <parameter key="ss_address.entity.address.class">Skonsoft\AddressBundle\Entity\Address</parameter>
        <parameter key="ss_address.form.type.address.class">Skonsoft\AddressBundle\Form\Type\AddressType</parameter>
    </parameters>

    <services>
        <service id="ss_address.form.type.address" class="%ss_address.form.type.address.class%">
            <argument>%ss_address.entity.address.class%</argument>
            <tag name="form.type" alias="ss_postal_address" />
        </service>
    </services>
Run Code Online (Sandbox Code Playgroud)

你知道如何解决这个问题吗?

谢谢

dependency-injection symfony

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