小编Séb*_*ien的帖子

symfony:我们不能拥有隐藏的实体字段吗?

我正在使用symfony中的实体字段渲染表单.

当我选择常规实体字段时,它运行良好.

$builder
    ->add('parent','entity',array(
            'class' => 'AppBundle:FoodAnalytics\Recipe',
            'attr' => array(
                'class' => 'hidden'
            )
        ))
Run Code Online (Sandbox Code Playgroud)

当我选择 - > add('parent','hidden')时会抛出以下错误:

表单的视图数据应该是标量,数组或\ ArrayAccess的实例,但是类AppBundle\Entity\FoodAnalytics\Recipe的实例.您可以通过将"data_class"选项设置为"AppBundle\Entity\FoodAnalytics\Recipe"或添加视图转换器来将类AppBundle\Entity\FoodAnalytics\Recipe的实例转换为标量,数组或实例来避免此错误ArrayAccess接口.500内部服务器错误 - LogicException

我们不能有隐藏的实体字段吗?为什么不?我是否有义务将另一个隐藏字段用于检索实体ID?

编辑:

基本上,我正在尝试做的是在显示它之前水合表单,但阻止用户更改其中一个字段(这里的父级).这是因为我需要将Id作为参数传递,我不能在表单操作URL中执行此操作.

php entity formbuilder symfony

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

twig striptags和html特殊字符

我正在使用twig渲染视图,我正在使用striptags过滤器来删除html标记.但是,html特殊字符现在呈现为文本,因为整个元素被""包围.我怎样才能剥离特殊字符或渲染它们,同时仍然使用striptags函数?

示例:

{{ organization.content|striptags(" >")|truncate(200, '...') }}
Run Code Online (Sandbox Code Playgroud)

要么

{{ organization.content|striptags|truncate(200, '...') }}
Run Code Online (Sandbox Code Playgroud)

输出:

"QUI SOMMES NOUS ? > NOS LOCAUXNOS LOCAUXDepuis 1995,  Ce lieu chargé d’histoire et de tradition s’inscrit dans les valeurs"
Run Code Online (Sandbox Code Playgroud)

html strip special-characters symfony twig

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

Doctrine QueryBuilder indexBy on join class -p已经定义了Error

使用symfony2/doctrine2,我很难为我的查询定义索引.

我的代码:

    $queryBuilder = $this->_em
        ->createQueryBuilder()
        ->select('u, uis, cost, p, stock')
        ->from('AppBundle:FoodAnalytics\UserIngredient', 'u', 'p.id')
        ->leftJoin('u.product', 'p')
        ->leftJoin('u.numberObjects', 'stock')
        ->leftJoin('u.userIngredientSuppliers', 'uis')
        ->leftJoin('uis.numberObjects', 'cost')
        ->where('u.user = ?1')
        ->setParameter(1, $portfolioUser)
        ;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

[Semantical Error] line 0, col 110 near 'p LEFT JOIN u.numberObjects': Error: 'p' is already defined.
500 Internal Server Error - QueryException
1 linked Exception: QueryException »

[1/2] QueryException: SELECT u, uis, cost, p, stock FROM AppBundle:FoodAnalytics\UserIngredient u INDEX BY p.id LEFT JOIN u.product p LEFT JOIN u.numberObjects stock LEFT JOIN …
Run Code Online (Sandbox Code Playgroud)

php mysql query-builder symfony doctrine-orm

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

如何在down时使用systemD重启服务?

在我的服务器上,我使用弹性搜索,它经常下降,结果是我的用户500错误.

我知道systemD现在是管理服务的参考.那个我能接受.

如何在发生故障时自动重启弹性搜索服务?我找到了重新启动它的方法,但没有自动重启,没有我检查它是否已关闭.

linux service debian monitor systemd

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

从twig迁移到ReactJS:如何扩展模板/组件以构建完整的reactJS页面?实现react-router和redux到symfony?

在我的twig应用程序中,我有一个控制器渲染视图.

这个观点如下:

{% extends ':Template/Backend:backend.html.twig' %}

{% block title_wrapper %}
{% endblock %}

{% block body %}
 My code
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

在backend.html.twig中,我有:

{% extends ':Template/base.html.twig' %}

{% block navbar %}
   {% render controller ... %}
{% endblock %}

{% block sidebar%}
   {% render controller ... %}
{% endblock %}

{% block body %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

现在,这个页面是超级动态的,许多不同的ajax调用更新了不同的数据部分.ReactJS似乎是让它变得更简单的好方法.

我理解如何将一个组件放在另一个组件中并在此基础上构建.但是,根据我的页面内容,我的导航栏和侧边栏的内容如何使其工作?

我的问题是:

  1. 如果我渲染我的身体组件并且它与我的导航栏和侧边栏组件分开(保留现有的树枝结构并加载3个组件),那么一个中的更改将不会更新另一个组件
  2. 如果我加载一个包含导航栏,侧边栏和正文组件的应用程序组件,我该如何制作主体的变体,即如何复制树枝的"扩展"功能?
  3. 我需要一步一步地移动,所以我需要用树枝继续渲染我的应用程序的一部分
  4. 看起来我需要在我的symfony应用程序中正确实现reux和react-router,创建单页面应用程序和包含navbars的app组件.我很感激你的一些帮助!

希望来自reactJS专家的一些帮助!谢谢!

symfony twig reactjs

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

服务方法作为twig全局变量

在我的symfony2应用程序中,我有一个getPorfolioUser方法,它返回一个特定的用户变量.

我很期待能打电话

{%if portfolio_user%}

在树枝上.我不明白如何将其设置为全局变量,因为我在印象中只能设置固定元素或服务而不是服务方法.

我是否有义务为此编写扩展或帮助?这样做的简单方法是什么?

谢谢!

php service global-variables symfony twig

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

Symfony:SecurityContext中没有为防火墙后面的路由找到令牌

在我的Symfony2应用程序中,我构建了一个异常监听器,它让我知道未处理的错误.

当机器人访问我的页面时,我收到有关以下错误的消息,该页面位于防火墙后面:

A Token was not found in the SecurityContext.
Run Code Online (Sandbox Code Playgroud)

我还检索以下数据:

User agent  Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)
Trace as string #0 /home/foodmeup.net/production/releases/20150527141710/app/cache/prod/classes.php(2951): Symfony\Component\Security\Http\Firewall\AccessListener->handle(Object(Symfony\Component\HttpKernel\Event\GetResponseEvent))
#1 [internal function]: Symfony\Component\Security\Http\Firewall->onKernelRequest(Object(Symfony\Component\HttpKernel\Event\GetResponseEvent), 'kernel.request', Object(Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher))
#2 /home/foodmeup.net/production/releases/20150527141710/app/cache/prod/classes.php(2205): call_user_func(Array, Object(Symfony\Component\HttpKernel\Event\GetResponseEvent), 'kernel.request', Object(Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher))
#3 /home/foodmeup.net/production/releases/20150527141710/app/cache/prod/classes.php(2138): Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(Array, 'kernel.request', Object(Symfony\Component\HttpKernel\Event\GetResponseEvent))
#4 /home/foodmeup.net/production/releases/20150527141710/app/cache/prod/classes.php(2299): Symfony\Component\EventDispatcher\EventDispatcher->dispatch('kernel.request', Object(Symfony\Component\HttpKernel\Event\GetResponseEvent))
#5 /home/foodmeup.net/production/releases/20150527141710/app/bootstrap.php.cache(3017): Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch('kernel.request', Object(Symfony\Component\HttpKernel\Event\GetResponseEvent))
#6 /home/foodmeup.net/production/releases/20150527141710/app/bootstrap.php.cache(2990): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)
#7 /home/foodmeup.net/production/releases/20150527141710/app/bootstrap.php.cache(3139): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#8 /home/foodmeup.net/production/releases/20150527141710/app/bootstrap.php.cache(2383): Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#9 /home/foodmeup.net/production/releases/20150527141710/web/app.php(28): Symfony\Component\HttpKernel\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#10 {main}
Run Code Online (Sandbox Code Playgroud)

这发生在我上次更新以来的所有网站页面上,但我无法弄清楚问题是什么.如果我自己访问该页面,则没有问题,也没有异常.

我对我设置的防火墙的理解是,如果有人试图访问受保护资源,他会被重定向到登录页面而不会抛出任何错误.在这里,我担心一些用户可能会登陆错误页面而不是被重定向到登录页面.当我想通过从抛出错误时访问referer来复制错误时,我被正确地重定向,所以我不明白抛出错误与重定向用户的情况是什么.

编辑:

我的异常监听服务:

exception_listener:
    class: %exception_listener.class%
    arguments: [@router, @session, @security.token_storage, @email_manager, @doctrine, …
Run Code Online (Sandbox Code Playgroud)

php error-handling bots symfony

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

bootstrap工具提示不考虑数据放置参数

我在我的元素上添加了bootstrap工具提示参数:

<input type="text" name="appbundle" data-toggle="tooltip" data-placement="top" title="My title" class="form-control">
Run Code Online (Sandbox Code Playgroud)

我还添加了以下脚本:

$('[data-toggle="tooltip"]').tooltip();
Run Code Online (Sandbox Code Playgroud)

好吧,工具提示正在显示,但它不符合数据放置参数:它始终位于控件的底部.

我已经看到有一些定位问题,但我发现的很多都是很久以前的,我现在有自助3.3.1.

有关如何解决这个问题的任何线索?

编辑:这是一个示例代码,我正在使用相同的库.还是行不通

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="vendor/bootstrap-3.3.1/css/bootstrap-theme.min.css">
    <link rel="stylesheet" href="vendor/bootstrap-3.3.1/css/bootstrap.min.css">
    <link rel="stylesheet" href="vendor/jquery-ui-1.11.2/jquery-ui.min.css">
    <link rel="stylesheet" href="vendor/jquery-ui-1.11.2/jquery-ui.structure.min.css">
    <link rel="stylesheet" href="vendor/jquery-ui-1.11.2/jquery-ui.theme.min.css">
</head>

<body>
    <script src="vendor/bootstrap-3.3.1/js/bootstrap.min.js"></script>
    <script src="vendor/bootstrap-3.3.1/js/npm.js"></script>
    <script src="vendor/jquery/jquery-2.1.1.min.js"></script>
    <script src="vendor/jquery-ui-1.11.2/jquery-ui.min.js"></script>

    <p>test</p>
    <br>
    <input type="text" name="appbundle" data-toggle="tooltip" data-placement="top" title="My title" class="form-control">

<script>
    $(function(){
        $('[data-toggle="tooltip"]').tooltip();
    });
</script>
</body>
Run Code Online (Sandbox Code Playgroud)

javascript css jquery tooltip twitter-bootstrap

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

错误"1038超出排序内存,请考虑增加排序缓冲区大小

在symfony2,doctrine2中,我有一个触发错误的查询:

Error "1038 Out of sort memory, consider increasing server sort buffer size
Run Code Online (Sandbox Code Playgroud)

查询:

$queryBuilder = $this
    ->createQueryBuilder('object')
    ->leftJoin('object.objectCategory', 'c')
    ->leftJoin('object.medias', 'm')
    ->leftJoin('object.recipients', 'r')
    ->leftJoin('object.answers', 'a')
    ->leftJoin('object.tags', 't')
    ->leftJoin('object.user', 'u')
    ->leftJoin('object.votes', 'v')
    ->leftJoin('object.comments', 'comments')
    ->leftJoin('v.user', 'vuser')
    ->addSelect('c, t, v, u')
    ->groupBy('object, c, t, v, u')
    ->where('object.isVisible = :isVisible')
    ->orderBy('object.createdAt', 'DESC')
    ->setParameter('isVisible', true)
    ->addSelect('SUM(v.value) AS HIDDEN vote_value')
    ->orderBy('vote_value', 'DESC')
    ;
Run Code Online (Sandbox Code Playgroud)

如果我省略了分组,它运行得很好.如果我用较少的元素添加select和group,它也运行正常但是我在我的twig模板中启动了更多的子查询.

如何优化此查询以避免错误或通过分配更多内存(理想情况下仅用于此查询)来消除错误?

mysql sql symfony doctrine-orm

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

Symfony 2.7:资产组件无法与imag_filter一起使用

随着Symfony 2.7中资产组件的引入,如何在没有版本号的情况下输出资产的相对URL?

我使用以下代码whcih不再起作用:

<img src="{{ asset('images/user.png') | imagine_filter('default') }}" alt="Image de profil" class="img-circle whitebg">
Run Code Online (Sandbox Code Playgroud)

资产函数输出一个带有版本号的url,imagi_filter无法正确处理:

http://mywebsite.com/media/cache/resolve/default/images/user.png%3Fversion=v1.0

我的配置:

framework:
    assets:
        version: 'v1.0'
        version_format: '%%s?version=%%s'
        base_path: ~
        packages:
            images:
                base_path: /images
                version_format: ''
Run Code Online (Sandbox Code Playgroud)

理想情况下,我可以在保持此版本控制策略的同时使想象过滤器工作.否则,停用图像的版本控制可能足够好

谢谢你的帮助 !

assets filter symfony liipimaginebundle

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