小编Zed*_*d-K的帖子

Symfony 3 - 如何使用表单处理JSON请求

我很难弄清楚如何使用Symfony表单处理JSON请求(使用v3.0.1).

这是我的控制器:

/**
 * @Route("/tablet")
 * @Method("POST")
 */
public function tabletAction(Request $request)
{
    $tablet = new Tablet();
    $form = $this->createForm(ApiTabletType::class, $tablet);
    $form->handleRequest($request);

    if ($form->isValid()) {
        $em = $this->getDoctrine()->getManager();
        $em->persist($tablet);
        $em->flush();
    }

    return new Response('');
}
Run Code Online (Sandbox Code Playgroud)

我的形式:

class ApiTabletType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('macAddress')
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => 'AppBundle\Entity\Tablet'
        ]);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我发送POST请求并将Content-Type标头正确设置为application/json时,我的表单无效...所有字段都为空.

这是我在评论该if ($form->isValid())行时得到的异常消息:

当执行 '(?,?)INSERT INTO片剂(MAC_ADDRESS,SITE_ID)VALUES' 使用参数[NULL,NULL]发生异常:

我每次尝试发送不同的JSON,结果相同:

  • {"id":"9","macAddress":"5E:FF:56:A2:AF:15"}
  • {"api_tablet":{"id":"9","macAddress":"5E:FF:56:A2:AF:15"}}

getBlockPrefix返回的是"api_tablet" (Symfony 3相当于 …

php json symfony

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

AS3 - 仅触发一次的事件监听器

我正在寻找一种方法来添加一个EventListener,它会在第一次触发后自动删除它,但我无法想办法按照我想要的方式执行此操作.

我找到了这个功能(这里):

public class EventUtil
{
    public static function addOnceEventListener(dispatcher:IEventDispatcher,eventType:String,listener:Function):void
    {
         var f:Function = function(e:Event):void
         {
              dispatcher.removeEventListener(eventType,f);
              listener(e);
          }
          dispatcher.addEventListener(eventType,f);
    }
}
Run Code Online (Sandbox Code Playgroud)


但不必写:

EventUtil.addOnceEventListener( dispatcher, eventType, listener );
Run Code Online (Sandbox Code Playgroud)

我想以通常的方式使用它:

dispatcher.addOnceEventListener( eventType, listener );
Run Code Online (Sandbox Code Playgroud)


有没有人知道如何做到这一点?
任何帮助都会非常感激.


(我知道Robert Penner的Signals可以做到这一点,但是我不能使用它们,因为它意味着很多代码重写,我目前的项目无法负担)

events actionscript-3 addeventlistener dispatch

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

C# - 遍历List <T>中的给定类型元素

我有一个抽象类(Object2D)和几个继承Object2D的类(例如DisplayObject2D)

我使用List来存储对这些对象的所有引用.

我想遍历此List中的每个DisplayObject2D.

到目前为止,以下代码正在运行,但对C#开发不熟悉,我想知道是否有更好的做法:

List<Object2D> tmp = objects.FindAll( delegate( Object2D obj )
                                      { return obj is DisplayObject2D; } );
foreach( DisplayObject2D obj in tmp )
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

c# types list

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

标签 统计

actionscript-3 ×1

addeventlistener ×1

c# ×1

dispatch ×1

events ×1

json ×1

list ×1

php ×1

symfony ×1

types ×1