我有一个团队,我想添加玩家(玩家的对象).我已正确设置表单"类型"类.这是我的观点的相关部分:
{% 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#template
在data-prototype
属性中包含整个内容?
我的问题:
我有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: …
我正在尝试使用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) 如何在类中定义的自定义函数中引用自定义类的实例?
我通过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) 有没有办法在没有提交的情况下取消git存储库中的文件?
如果您尝试在git add .
没有提交的情况下对新创建的git repo执行操作,然后尝试执行a git reset
,则从git获取以下内容:
无法将"HEAD"解析为有效的参考号.
有替代方法吗?
正如标题所示,我的表单中有一个选择字段(无线电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)
验证非实体字段的正确方法是什么?
我在我的symfony2应用程序中使用了一个flash组件,它上传了多个图像,当它们到达服务器时,我想重新打开会话,这样我就可以将图像存储在相对于登录用户的位置.我发送每个文件上传的PHP会话ID ...
在香草PHP我可以实现这一点......
session_id($originalSessionId);
session_start();
Run Code Online (Sandbox Code Playgroud)
但是有一种symfony2方法使用安全上下文吗?
编辑:这是一个类似的问题,虽然我想通过传递令牌并使用单独的防火墙保护上传URL来创建某种基于令牌的登录.
我在解决这个问题时遇到了一些麻烦.我想循环遍历所有月份,而不是现在我的代码正在执行的十二次.任何人都可以帮助,还有一种更有效的循环这个功能的方法吗?
谢谢!
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/的链接
symfony ×5
javascript ×2
twig ×2
arrays ×1
assetic ×1
extjs4 ×1
flash ×1
forms ×1
git ×1
loops ×1
php ×1
radio-button ×1
scope ×1
session ×1
validation ×1
while-loop ×1