我有一个3层的表单:First Layer是游戏的容器:
class GameListType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('games', 'collection', array(
'required' => false,
'allow_add' => true,
'prototype' => true,
'by_reference' => false,
'type' => new GameBetType(),
))
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver) {
parent::setDefaultOptions($resolver);
$resolver->setDefaults(array(
'cascade_validation' => true,
));
}
}
Run Code Online (Sandbox Code Playgroud)
第二层是游戏本身,因为我不打算改变游戏,但是赌注,它只包括赌注的形式:
class GameBetType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('bet', new BetType());
}
public function setDefaultOptions(\Symfony\Component\OptionsResolver\OptionsResolverInterface $resolver) {
parent::setDefaultOptions($resolver);
$resolver->setDefaults(array(
'data_class' => 'Strego\TippBundle\Entity\Game',
'cascade_validation' => true,
)); …Run Code Online (Sandbox Code Playgroud) 我目前正在Docker Cloud上开发Websocket应用程序.重新部署我的应用程序时,现在我总是收到此错误消息:
WebSocket连接失败:WebSocket打开握手被取消
在查看数据框时,我看到一个包含此数据的帧:
(操作码-1)
在研究问题时,似乎与SSL /证书等有关.一些解决方案包括添加自签名证书.令人困惑的是,相同的证书似乎适用于https但不适用于wss:
在使用其他浏览器进行测试时,我发现Safari工作正常.所以我确信服务器实际上在正确的端口上使用正确的证书运行.只有chrome似乎有问题.
我知道堆栈溢出的一些解决方案可以手动添加证书,但由于它适用于Safari并且它不是自签名证书,我认为它应该可以正常工作.
我试图在我的路由/控制器中使用query-params但是把手助手正在导致此错误:
未捕获的错误:<(Ember._MetamorphView的子类):ember689> Handlebars错误:无法在对象上找到属性'query-params'.
此错误是由此链接指向帮助程序引起的:
{{#link-to 'betround.stats' (query-params game=id) }}
<li {{bind-attr class="isPast:small"}}> {{team1}} {{scoreT1}} : {{scoreT2}} {{team2}} (gameid: {{id}})</li>
{{/link-to }}
Run Code Online (Sandbox Code Playgroud)
我已经升级了Ember和Handlebars
DEBUG: Ember : 1.4.0-beta.4
DEBUG: Ember Data : 1.0.0-beta.4
DEBUG: Handlebars : 1.3.0
DEBUG: jQuery : 2.0.3
Run Code Online (Sandbox Code Playgroud)
以及启用query-params-new功能:
<script type="text/javascript">
ENV = {FEATURES: {'query-params-new': true}};
</script>
<script src="bower_components/jquery/jquery.js"></script>
<script src="bower_components/handlebars/handlebars.js"></script>
<script src="bower_components/underscore/underscore.js"></script>
<script src="bower_components/ember/ember.js"></script>
<script src="bower_components/ember-animated-outlet/ember-animated-outlet.js"></script>
<script src="bower_components/ember-data/ember-data.js"></script>
Run Code Online (Sandbox Code Playgroud)
我不确定它是否相关,但这也是我的路线控制器:
GambifyApp.BetroundStatsController = Ember.ArrayController.extend({
needs: "betround",
queryParams: ['game'],
game: null,
filteredBets: function() {
var game= this.get('game');
var bets = this.get('model'); …Run Code Online (Sandbox Code Playgroud) 我正在使用新的Ember查询参数并且问题"取消设置"查询参数.
我有一个场景,我需要从以下内容导航:?game = 13 to?question = 14.这意味着我的路由器上有2个查询参数:游戏,问题.不幸的是这个转变(来自?game = 13):
this.transitionToRoute({queryParams: {question: 14}} );
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会导致:
?游戏= 13&问题= 14.
我也尝试过:
this.transitionToRoute({queryParams: {question: 14, game: null}} );
Run Code Online (Sandbox Code Playgroud)
这导致:
?游戏= NULL&问题= 14
因为不知怎的,一切都是字符串转换.
如何转换到?question = 14并删除游戏查询参数?
我正在尝试检索设备注册ID,以便从我的后端向它发送通知.
我已经尝试了几次:
GambifyApp.NotificationManager = window.GambifyApp.NotificationManager = Ember.Object.extend({
init: function(){
var pushNotification = window.plugins.pushNotification;
window.GambifyApp.NotificationHandler = GambifyApp.NotificationHandler;
if ( device.platform == 'android' || device.platform == 'Android' )
{
console.log('pushNotification Register');
pushNotification.register(
this.successHandler,
this.errorHandler, {
"senderID":GambifyApp.config.android_sender_id,
"ecb":"window.externalOnNotificationGCM"
});
},
});
window.externalOnNotificationGCM = function (e) {
console.log('reg id:' + e.regid);
};Run Code Online (Sandbox Code Playgroud)
方法是在另一个对象内部(除ECB外,一切都保持不变:
"ecb":"window.GambifyApp.NotificationHandler.onHandler"
Run Code Online (Sandbox Code Playgroud)这是我放置处理程序的地方:
GambifyApp.NotificationHandler = window.GambifyApp.NotificationHandler = {
onHandler: function(e){
console.log('onHandler:');
if(e.event == "registered") {
console.log('reg id:' + e.regid);
}
console.log(e);
}
}
Run Code Online (Sandbox Code Playgroud)
我的最后一个方法
"ecb":"GambifyApp.NotificationManager.onNotificationGCM"
Run Code Online (Sandbox Code Playgroud)这里增加了经理类:
GambifyApp.NotificationManager = window.GambifyApp.NotificationManager = Ember.Object.extend({ …Run Code Online (Sandbox Code Playgroud) 我正在使用我的cordova应用程序的人行横道.
我遇到以下错误:
位于org.apache.cordova.CordovaActivity.init上的org.apache.cordova.CordovaActivity.makeWebView(CordovaActivity.java:340)的org.apache.cordova.CordovaActivity.init(CordovaActivity.java:376)中的java.lang.ExceptionInInitializerError( CordovaActivity.java:368)在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java)的android.app.Activity.performCreate(Activity.java:6374)的de.gambify.android.CordovaApp.onCreate(CordovaApp.java:31) :1119)在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2767)的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2879)在android.app.ActivityThread.access $ 900(ActivityThread.java:182)at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1475)在android.app.Handler.dispatchMessage(Handler.java:102)android.app.Looper.loop(Looper.java:145)android.app .ActivityThread.main(ActivityThread.java:6141)位于java.lang.reflect.Method.invoke的java.lang.reflect.Method.invoke(Native Method)中(Method.java):372)com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1399)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)引起:java.lang. RuntimeException:java.lang.RuntimeException:如果要在org.xwalk.core.ReflectionHelper.handleException(ReflectionHelper.java:233)的org.xwalk.core.ReflectionHelper.handleException(ReflectionHelper.java:237)中支持共享模式,请使用SharedXWalkView )org.xwalk.core.ReflectionHelper.init(ReflectionHelper.java:132)atg.xwalk.core.ReflectionHelper.loadClass(ReflectionHelper.java:199)org.xwalk.core.XWalkPreferences.setValue(XWalkPreferences.java: 112)at org.apache.cordova.CordovaWebView.(CordovaWebView.java:897)... 17更多引起:java.lang.RuntimeException:如果你想支持共享模式,请使用SharedXWalkView ... 22更多
我一开始认为这与我仅在ARM支持下构建我的应用程序有关.现在我已将我的应用程序与x86以及ARM支持捆绑在一起,但仍然面临这些错误.
让我感到惊讶的是,它说我应该使用共享模式.我目前正在使用嵌入式模式.
我看到这些问题的设备是三星Galaxy S6和三星Galaxy S6边缘.
我正在使用人行横道12.41.296.9
我试图为我的Symfony2项目设置代码,该项目已经有4个工作包和他们的PHPUnit测试用例.现在我想添加代码测试测试用例,特别是对于验收测试,但是当我"引导"代码时,我在主结构中找到了所有生成的代码.由于我的应用程序已经捆绑在一起,我想保留这个概念以及我的测试用例.特别是因为我的bundle中已经有了我的PHPUnit测试用例.官方的s2代码并没有真正涵盖这一点.所以对我来说有些问题出现了:
我对javascript和promises相当新,所以我可能没有得到所有的基本概念,但我正在尝试.
我的模型中有一个函数可以检查friendshiptstatus:
friendShipStatus: function() {
var self = this;
return Ember.RSVP.all([this.container.lookup('user:current'),
this.get('myFriends'),
this.get('friendsWithMe'),
this.get('friends')]).then(function(result){
var user = result[0], myFriends = result[1],
friendsWithMe = result[2], friends = result[3]
if(friends.contains(user)){
return 2;
} else if(friendsWithMe.contains(user)){
return 4;
} else if(myFriends.contains(user)){
return 1;
} else if (self.get('id') === user.get('id')){
return 3;
} else {
return 0;
}
});
}.property('friends')
Run Code Online (Sandbox Code Playgroud)
不,我只想通过以下方式在我的tmeplate中输出此值(例如3):
FriendStatus :{{ friendShipStatus}}<br>
Run Code Online (Sandbox Code Playgroud)
但我只得到对象输出:
FriendStatus:[object Object]
如果我通过日志助手记录输出,{{ log friendShipStatus }}我会看到使用值3解析了promise.为什么这个值不会被放入我的模板中?
我正在尝试使用elasticsearch后端实现Typeahead.搜索本身似乎有效,现在我正在尝试调整光学元件.我想使用我写的Ember.Handlebars助手.我的第一次尝试是使用handelbars作为模板引擎:
App.SearchComponent = Ember.TextField.extend({
didInsertElement: function() {
App.UserSearchEngine.initialize();
this.initializeTypeahead();
},
initializeTypeahead: function(){
var _this = this;
this.typeahead = this.$().typeahead({
hint: true,
highlight: true,
minLength: 3
},
{
name: _this.$().attr('id') || "typeahead",
// template: 'My: {{firstName}}',
limit: this.get("limit") || 5,
source: App.UserSearchEngine.ttAdapter(),
templates:{
suggestion: Ember.Handlebars.compile('{{firstName}} {{lastName}}')
}
}
);
}
});
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误:
未捕获的TypeError:无法在行中的"_triageMustache"帮助器中读取由Ember引起的未定义的属性"容器"
var helper = Ember.Handlebars.resolveHelper(options.data.view.container, property);
Run Code Online (Sandbox Code Playgroud)
这可能是因为我尝试直接编译模板.
如果我使用Handlebars.compile()而不是Ember.Handlebars.compile()它会工作.看来上下文不正确.
我正在尝试将我的推送消息分组到我的Android设备上.我希望它像whatsapp一样工作.如果有多条消息,请保留标题(如果它们相同),但显示某个"线程"中的消息数.
我的应用程序有类似聊天室的东西.我想收集单个房间的所有消息,并显示例如聊天室A作为标题,然后显示那里的新消息数量.一旦在另一个聊天室中有新帖子,我希望它能说出"2个聊天室中的6条新消息".
不幸的是,我不知道如何在Android上使用GCM实现这样的功能.
有任何想法吗?
我遵循了Cookboock中的说明:http ://symfony.com/doc/current/cookbook/doctrine/event_listeners_subscribers.html, 但不幸的是我的EventListener没有被调用。
service.yml
services:
strego.acl.eventlistener:
class: Strego\TippBundle\EventListener\AclUpdater
tags:
- { name: doctrine.event_listener, event: prePersist, connection: default }
Run Code Online (Sandbox Code Playgroud)
这是我执行的事件监听器:
namespace Strego\TippBundle\EventListener;
use Doctrine\ORM\Event\LifecycleEventArgs;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
class AclUpdater implements ContainerAwareInterface
{
protected $container;
public function prePersist(LifecycleEventArgs $args) {
$args->idonotexist(); // should crash if called
}
}
public function setContainer(ContainerInterface $container = null) {
$this->container = $container;
}
}
Run Code Online (Sandbox Code Playgroud)
现在是我要测试的控制器代码:
public function testAction($id){
$em = $this->getDoctrine()->getEntityManager();
$entity = $em->getRepository('StregoTippBundle:BetGroup')->find($id);
$entity->setUpdatedAt(new \DateTime());
$entity->setTitle('update Name! #2');
$em->persist($entity);
$em->flush();
return new \Symfony\Component\HttpFoundation\Response("done"); …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 m:n 表(用户-组关系)中插入一条记录,并在用户成功加入时返回该组。
但是我无法在插入后返回整个组。
with "group" as (
SELECT * from "group" where code = 'tohubo' LIMIT 1
)
insert into group_users__user_groups ("group_users", "user_groups")
select id from "group", 1
returning (SELECT * from "group")
Run Code Online (Sandbox Code Playgroud)
通过该查询,我目前收到错误消息
子查询必须只返回一列
我也尝试只返回 *,但后来我只得到 group_users__user_groups 的内容。
我还尝试在最后添加一个额外的 Select :
with "found_group" as (
SELECT * from "group" where code = 'tohubo' LIMIT 1
)
insert into group_users__user_groups ("group_users", "user_groups")
select 1, id from "found_group";
Select * from "found_group";
Run Code Online (Sandbox Code Playgroud)
但是随后在第二个查询中没有定义 WITH 部分:
内核错误:错误:关系“found_group”不存在
关于如何用树枝附加块有几个问题.答案总是使用继承和使用,然后调用parent().不知怎的,我不知道这在我的具体情况下是如何工作的:
base.html.twig
{% block content %}{% endblock %}
{% block appendable %}
{% endblock %}
{% block another_appendable %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
site.html.twig
{% extends base.html.twig %}
{% block content %}
{# Here use/include/embed, i dont know #}
{% use sub1.html.twig %}
{% use sub2.html.twig %}
{% endblock content %}
Run Code Online (Sandbox Code Playgroud)
sub1.html.twig
Some content that should be directly rendered
{% block appendable %}
some stuff that should be added to appendable
{% endblock %}
{% block another_appendable %}
This content should …Run Code Online (Sandbox Code Playgroud) ember.js ×5
symfony ×4
cordova ×2
javascript ×2
symfony-2.1 ×2
android ×1
codeception ×1
doctrine-orm ×1
php ×1
postgresql ×1
sql ×1
ssl ×1
twig ×1
typeahead.js ×1
websocket ×1