小编m0c*_*m0c的帖子

级联验证不在表单的第三层上工作

我有一个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)

php symfony-forms symfony symfony-2.1

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

网页无法在Chrome中运行(wss):"握手被取消"

我目前正在Docker Cloud上开发Websocket应用程序.重新部署我的应用程序时,现在我总是收到此错误消息:

WebSocket连接失败:WebSocket打开握手被取消

在查看数据框时,我看到一个包含此数据的帧:

(操作码-1)

在研究问题时,似乎与SSL /证书等有关.一些解决方案包括添加自签名证书.令人困惑的是,相同的证书似乎适用于https但不适用于wss:

HTTPS works fine

在使用其他浏览器进行测试时,我发现Safari工作正常.所以我确信服务器实际上在正确的端口上使用正确的证书运行.只有chrome似乎有问题.

我知道堆栈溢出的一些解决方案可以手动添加证书,但由于它适用于Safari并且它不是自签名证书,我认为它应该可以正常工作.

javascript ssl google-chrome websocket

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

把手错误:尽管已激活功能,但找不到属性'query-params'

我试图在我的路由/控制器中使用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)

handlebars.js ember.js

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

Ember Query Params取消设置查询参数

我正在使用新的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并删除游戏查询参数?

ember.js

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

Cordova Pushplugin:没有叫ecb

我正在尝试检索设备注册ID,以便从我的后端向它发送通知.

我已经尝试了几次:

  1. 在我的对象之外

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)

  1. 方法是在另一个对象内部(除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)
  1. 我的最后一个方法

    "ecb":"GambifyApp.NotificationManager.onNotificationGCM"
    
    Run Code Online (Sandbox Code Playgroud)

这里增加了经理类:

GambifyApp.NotificationManager = window.GambifyApp.NotificationManager = Ember.Object.extend({ …
Run Code Online (Sandbox Code Playgroud)

ember.js cordova phonegap-pushplugin

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

Crosswalk崩溃:如果要支持共享模式,请使用SharedXWalkView

我正在使用我的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

android cordova crosswalk-runtime

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

Codeception中的捆绑设置

我试图为我的Symfony2项目设置代码,该项目已经有4个工作包和他们的PHPUnit测试用例.现在我想添加代码测试测试用例,特别是对于验收测试,但是当我"引导"代码时,我在主结构中找到了所有生成的代码.由于我的应用程序已经捆绑在一起,我想保留这个概念以及我的测试用例.特别是因为我的bundle中已经有了我的PHPUnit测试用例.官方的s2代码并没有真正涵盖这一点.所以对我来说有些问题出现了:

  1. 如何设置它在我的bundle中工作的代码
  2. 如何使用一个命令运行所有现有的PHPUnit测试用例和我的代码测试用例?

symfony codeception

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

承诺在解决后未将值放入模板中

我对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.为什么这个值不会被放入我的模板中?

javascript handlebars.js ember.js

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

Typeahead和Ember.handelbars

我正在尝试使用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()它会工作.看来上下文不正确.

handlebars.js ember.js typeahead.js

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

如何在Android上对推送消息进行分组

我正在尝试将我的推送消息分组到我的Android设备上.我希望它像whatsapp一样工作.如果有多条消息,请保留标题(如果它们相同),但显示某个"线程"中的消息数.

我的应用程序有类似聊天室的东西.我想收集单个房间的所有消息,并显示例如聊天室A作为标题,然后显示那里的新消息数量.一旦在另一个聊天室中有新帖子,我希望它能说出"2个聊天室中的6条新消息".

不幸的是,我不知道如何在Android上使用GCM实现这样的功能.

有任何想法吗?

google-cloud-messaging

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

未在Doctrine事件上注册或调用事件监听器

我遵循了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)

symfony doctrine-orm symfony-2.1

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

插入并返回子查询

我正在尝试在 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”不存在

sql postgresql postgresql-9.5

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

附加内容以阻止多个子模板

关于如何用树枝附加块有几个问题.答案总是使用继承和使用,然后调用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)

symfony twig

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