小编Mic*_*ick的帖子

Symfony2将上传的文件分配给内存

在Symfony中上传大于post_max_size的文件时,上传的文件将在内存中分配.

致命错误:第28行的/Applications/MAMP/htdocs/Symfony/vendor/symfony/src/Symfony/Component/HttpKernel/DataCollector/DataCollector.php中允许的内存大小为150994944字节(试图分配84627994字节)

为什么symfony试图在POST时将文件分配给内存?

1/php.ini

file_uploads = On
upload_tmp_dir = /Applications/MAMP/tmp/php
upload_max_filesize = 32M
post_max_size = 48M
Run Code Online (Sandbox Code Playgroud)

2 /控制器

<?php
//AcmeDemoBundle/Controller/DemoController
namespace Acme\DemoBundle\Controller;
use Symfony\Component\HttpFoundation\Request;

class DemoController extends Controller
{

public function createAction(Request $request)
{

    if ($request->getMethod() == 'POST')
    {
        if ($_FILES["file"]["size"] < 3000000 )//3Mb
        {
            if ($_FILES["file"]["error"] > 0)
            {
                echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
            }
            else
            {
                if (empty($_POST) && empty($_FILES) && isset($_SERVER['REQUEST_METHOD']) && strtolower($_SERVER['REQUEST_METHOD']) == 'post')
                {
                    echo "The file is …
Run Code Online (Sandbox Code Playgroud)

php symfony-forms symfony

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

将Symfony2项目发布到Web上

我几乎完成了用Symfony2开发的项目的开发,并希望将项目放到网上.

但是,我想有很多事情需要做,以便一切正常.我想,开发模式需要被禁用等等......需要做什么以及如何做?

在Symfony2项目上最重要的事情是什么,网络上的每个人都可以使用它?

web-deployment symfony

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

如何将数组从Symfony 2控制器传递到TWIG模板?

我无法将数组从symfony 2控制器传递到TWIG模板.我在控制器中使用此代码:

$searchTerms['color'] = "Red";
return $this->render('TestBundle::search.html.twig', 
        array(
            "searchTerms" => $searchTerms));
Run Code Online (Sandbox Code Playgroud)

在twig模板中,我试图像这样访问变量:

  1. {{searchTerms ['color']}}
  2. {{searchTerms.color}}

两者都没有输出,空字符串,所以看起来数组来到模板但它的元素是空的.

怎么了?

php symfony twig

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

在css中创建凹角

是否可以在css中创建这样的凹角?如果是的话,你会怎么做?

图片

css css3

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

Symfony/Doctrine中的SQL注入

使用参数,而不是直接在查询字符串将值做是为了防止SQL注入攻击,应始终做到:

... WHERE p.name > :name ...
->setParameter('name', 'edouardo')
Run Code Online (Sandbox Code Playgroud)

这是否意味着如果我们使用这样的参数,我们将始终受到SQL注入的保护?在使用表单(FOS的注册表单)时,我<b>eduardo</b>改为使用标签将其保存到数据库中.我真的不明白为什么使用参数可以防止SQL注入......

为什么标签会像这样持久存储到数据库中?有没有办法通过使用Symfony的验证组件删除标签?

在Symfony中保存数据库之前,我们应该使用一般的提示或方法吗?

orm sql-injection symfony doctrine-orm

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

使用Array的Doctrine Query Builder

我有一个id数组:

Id_array; //array(2) { [0]=> int(9) [1]=> int(10) } 
Run Code Online (Sandbox Code Playgroud)

我只想选择使用Id_array的用户; 当我没有数组而只是一个整数时,我设法做到了这一点:

$query = $em->createQuery('SELECT u FROM Users u WHERE u.id = ?1');
$query->setParameter(1, 9); // I tested the value 9 here
$users = $query->getResult(); 
Run Code Online (Sandbox Code Playgroud)

如何获取与Id_array对应的所有用户?

php orm doctrine doctrine-orm

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

树枝中的条件继承

我有不同的布局,具体取决于用户.这会触发以下错误: "Multiple extends tags are forbidden".如何根据用户的角色设置使用不同的布局?

{% if is_granted('ROLE_USER_ONE') %}

{% extends "AcmeUserBundle::layout_user_one.html.twig" %}

{% elseif is_granted('ROLE_USER_TWO') %}

{% extends "AcmeUserBundle::layout_user_two.html.twig" %}

{% endif %}
Run Code Online (Sandbox Code Playgroud)

编辑

这是答案.我将使用3个用户的情况,以防人们想知道如何做到这一点.在这种情况下,如果有人对该陈述有疑问,admin也有特权userOneuserTwo特权else.我Conditional Inheritance在这种情况下使用,但正如其中一个答案中所建议的那样,Dynamic Inheritance可能更具可读性.

{% set admin = false %}

{% set userOne = false %}

{% set userTwo = false %}

{% if is_granted('ROLE_ADMIN') %}

    {% set admin = true %}

{% else %}

    {% if is_granted('ROLE_USER_ONE') %}

        {% …
Run Code Online (Sandbox Code Playgroud)

symfony twig

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

从ios应用程序登录和mantaign会话到symfony2 Web应用程序

我使用Symfony2开发了一个Web应用程序.我使用FOSUserBundle进行用户管理和安全性.

现在我正在考虑为我的网络开发原生iOS APP,并且不知道如何解决从APP创建会话的问题,并在整个交互用户APP中对其进行管理.

换句话说,我想确保当我这样做时NSURLRequest,会以某种方式发送会话令牌以允许服务器关联同一会话中的所有请求.

在PHP端创建会话时有什么特别的事吗?处理来自iOS APP的请求时有什么特别的事吗?

你能否提一些好文章来学习如何实现这种方法?我想从开始做好.

提前致谢

session symfony ios fosuserbundle

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

在没有SonataUserBundle的情况下集成SonataAdminBundle + FOSUserBundle以确保symfony 2.3的安全性?

我正在使用FOSUserBundle进行身份验证和角色.对于管理员面板,我使用的是SonataAdminBundle.

FOSUserBundle Version 2.0.dev(支持事件监听器).

当我尝试安装SonataUserBundle时,它只接受<= 1.3版本的FOSUserBundle(没有事件监听器)

我需要FOSUserBundle和事件监听器.

有谁知道如何使用FOSUserBundle提供安全性(对于管理员和客户端面板)?

security symfony fosuserbundle

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

环绕可视文本超过1个字符

如何使用tpope的Vim Surround通过3个反引号 包围以下文本.```

我只能在视觉模式下使用1个反引号S`:

在此输入图像描述

vim vim-plugin

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

修改控制器内的请求

在Symfony中,很容易在控制器中获取请求:

$request = $this->container->get('request');
Run Code Online (Sandbox Code Playgroud)

现在,我认为这是一个不好的做法...但是可以修改该请求,这意味着,例如在绑定之前修改隐藏表单字段的值:

$requestModifiedWithNewValueForHiddenFormField = $request;
// modify the request
// ....
$this->bind($requestModifiedWithNewValueForHiddenFormField);
Run Code Online (Sandbox Code Playgroud)

我想我应该使用dataTransformer,但在这种情况下,我想对修改请求有你的意见......

symfony-forms symfony

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

按字符串的长度排序

有没有办法按Title字段中包含的字符串的长度来命令此查询?

    $query = $this->getEntityManager()
        ->createQuery('
    SELECT b FROM AcmeTestBundle:Blog b
    WHERE b.Title LIKE :title'
    )->setParameter('title','%'.$title.'%');
Run Code Online (Sandbox Code Playgroud)

ORDER BY b.Title.length() 似乎不起作用.

doctrine-orm

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

symfony2 monolog命令输出到dev中的控制台

我正在尝试在Symfony2中设置一个控制台命令,以便它在我的开发环境中记录到控制台,但是在prod中记录到日志文件.

所以我的config_prod.yml有这个:

monolog:
    handlers:
        payment:
            type:  stream
            path:  %kernel.logs_dir%/payment.log
            channels: payment
Run Code Online (Sandbox Code Playgroud)

而我的config_dev.yml使用这个:

monolog:
    handlers:
        console:
            type:   console
            channels: payment
Run Code Online (Sandbox Code Playgroud)

并且服务在services.yml中定义如下:

payment_manager:
    class:      My\Bundle\Service\PaymentManager
    arguments:  [@doctrine.orm.entity_manager, @logger]
    tags:
        - { name: monolog.logger, channel: payment }
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,这确实没有蹲下.输出转到app/logs/dev.log而不是控制台.为什么?

symfony monolog

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