小编Jam*_*all的帖子

Symfony2:具有数据原型的集合表单字段类型

我有一个团队,我想添加玩家(玩家的对象).我已正确设置表单"类型"类.这是我的观点的相关部分:

{% for index, player in form.players %}
    <div id="template" data-prototype="{{ form_widget(form.players.get('prototype')) | e }}">
        <span class="title">{{ index }}</span>
        {{ form_row(player.name) }}
    </div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我的问题是data-prototype属性不包含span标记; 它只包含输出{{ form_row(player.name) }}.有没有办法div#templatedata-prototype属性中包含整个内容?

php symfony

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

Symfony2 Assetic + Twig模板JavaScript继承

我的问题:

我有3个模板:

  • main.html.twig (主要布局文件)
  • layout.html.twig (特定于包的布局覆盖,其中包含一些特定于bundle的JS标记)
  • create.html.twig (特定于页面的模板文件,其中还包含一些特定于页面的JS标记)

我在我的基本布局(main.html.twig)中定义了一个名为'javascript'的块,然后覆盖它(但是调用{{ parent() }}layout.html.twig.这很好用,主模板文件中的JS标记仍然包含在layout.html.twig模板中的那些上面.

然后我在create.html.twig文件中执行相同操作,覆盖块,如下所示:

{% block javascripts %}
    {{ parent() }}
    {% javascripts '@BundleName/Resources/public/js/application.album.uploader.js'
                   '@BundleName/Resources/public/js/jquery.uploadify.js'
                   '@BundleName/Resources/public/js/swfuploadify.js' filter='?yui_js' %}
         <script src='{{ asset_url }}' type='text/javascript'></script>
    {% endjavascripts %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

此时,它不是仅覆盖parent(layout.html.twig)中的javascript块并包含其上方模板中定义的所有脚本,而是执行以下操作:

  • <script>标记转储到输出的中间(这会导致错误,因为在我的main.html.twig文件中我只在HTML标记的末尾包含了jQuery库
  • 然后它还会将脚本与其他脚本一起转储(正如我所期望的那样)

我不确定是什么导致脚本被转储到create.html.twig模板的中间,我也很困惑为什么他们被转发到屏幕两次(一次在创建的中间,然后一次在来自main.html.twig和的所有其余脚本的底部layout.html.twig.

有没有人有任何想法?如果有什么不清楚或者我是否可以提供更多信息,请告诉我.

编辑:

文件内容如下......

main.html.twig:https://gist.github.com/7f29353eaca0947528ce

layout.html.twig:https://gist.github.com/734947e9118b7765715e

create.html.twig:https://gist.github.com/c60c8d5c61e00ff86912

编辑2: …

symfony twig assetic

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

Symfony2:阻止无线电小部件呈现标签

我正在尝试使用symfony2中的Twig自定义表单布局.我的目标是渲染看起来像这样的无线电输入......

<label class=" required">Label name</label>
<span class="form-radio">
    <input type="radio" name="album_has_subalbums_1" /> Yes
</span>
<span class="form-radio">
    <input type="radio" name="album_has_subalbums_0" /> No
</span>
Run Code Online (Sandbox Code Playgroud)

radio_widget在自定义表单主题中覆盖了块,如下所示

{% block radio_widget %}
{% spaceless %}
    <span class='form-radio'>
        <input type="radio" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
    </span>
{% endspaceless %}
{% endblock radio_widget %}
Run Code Online (Sandbox Code Playgroud)

但是,这会呈现以下标记:

<label class=" required">Label name</label>

<span class="form-radio">
    <input type="radio" id="album_has_subalbums_1" name="album[has_subalbums]" required="required" value="1">
</span>
<label for="album_has_subalbums_1" class=" …
Run Code Online (Sandbox Code Playgroud)

forms radio-button symfony twig

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

ExtJS - 如何在自定义类的自定义函数中引用"self"?

如何在类中定义的自定义函数中引用自定义类的实例?

我通过ExtJS4的类扩展"机制"扩展了一个类,并且我有一个自定义事件处理程序,当触发某些东西时将调用它,并且我想在触发某些内容时折叠Panel.

但是,在下面的Reactor类的事件处理程序中,"this"引用EventTriggerer(事件的firer)而不是Reactor的实例.如何在自定义函数中引用EventReactor的实例?

谢谢!DashK

Ext.define('EventReactor', {
    extend: 'Ext.panel.Panel',
    onSomething: function(data) {
        // ERROR
        // this.collapse is undefined. "this" actually references EventTriggerer
        this.collapse();
    }
});

Ext.define('EventTriggerer', {
    extend: 'Ext.util.Observable',
    singleton: true,
    constructor: function() {
        this.addEvents({
        "changedView" : true
    });
},
doSomething: function() {
    // Do some stuff
    this.fireEvent("doneSomething", data);
    }
});

...

// Here's how the listeners are added
var er = Ext.create('EventReactor');
EventTriggerer.addListener("doneSomething", er.onSomething);

// Here's how the event is triggered.
er.doSomething();
Run Code Online (Sandbox Code Playgroud)

javascript scope extjs4

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

在没有提交的git仓库中取消暂存文件

有没有办法在没有提交的情况下取消git存储库中的文件?

如果您尝试在git add .没有提交的情况下对新创建的git repo执行操作,然后尝试执行a git reset,则从git获取以下内容:

无法将"HEAD"解析为有效的参考号.

有替代方法吗?

git

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

在Symfony2中验证表单中的非实体字段的最佳方法是什么?

正如标题所示,我的表单中有一个选择字段(无线电html输入),在允许用户继续操作之前必须有一个选择.

我已经尝试将验证添加到我的validation.yml文件包中(抛出一个错误,说该字段不是一个有效的实体字段),我也尝试直接在表单代码中添加验证器,但收到一个例外,因为验证器类没有实现FormValidatorInterface(代码如下).

$builder->addValidator(new  CallbackValidator(function(FormInterface $form) {
     if(!$form['has_subalbums']->getData())
     {
         $form->addError(new FormError('Please indicate sub albums'));
     }
}));
Run Code Online (Sandbox Code Playgroud)

验证非实体字段的正确方法是什么?

validation symfony

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

如何使用symfony2正确地重新打开会话?

我在我的symfony2应用程序中使用了一个flash组件,它上传了多个图像,当它们到达服务器时,我想重新打开会话,这样我就可以将图像存储在相对于登录用户的位置.我发送每个文件上传的PHP会话ID ...

在香草PHP我可以实现这一点......

session_id($originalSessionId);
session_start();
Run Code Online (Sandbox Code Playgroud)

但是有一种symfony2方法使用安全上下文吗?

编辑:这是一个类似的问题,虽然我想通过传递令牌并使用单独的防火墙保护上传URL来创建某种基于令牌的登录.

flash session symfony

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

循环使用Javascript函数

我在解决这个问题时遇到了一些麻烦.我想循环遍历所有月份,而不是现在我的代码正在执行的十二次.任何人都可以帮助,还有一种更有效的循环这个功能的方法吗?

谢谢!

    window.onload = function() {
    getMonth();
};

 function getMonth()
{
var x="",i=0;
var month=Array();
month[0]="January";
month[1]="February";
month[2]="March";
month[3]="April";
month[4]="May";
month[5]="June";
month[6]="July";
month[7]="August";
month[8]="September";
month[9]="October";
month[10]="November";
month[11]="December";

   while (i<12)
      {
      x=x  + month + "<br/>";
       i++;
       }
    document.getElementById("months").innerHTML=x;
    }
Run Code Online (Sandbox Code Playgroud)

这是我的jsfiddle演示http://jsfiddle.net/priswiz/LqEE6/的链接

javascript arrays loops while-loop

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