小编mic*_*ael的帖子

必须管理传递到选择字段的实体

我创建一个新对象并将其绑定到表单.用户填写表单并转到预览页面.我将用户响应存储在会话中.

当用户返回编辑表单时,当我尝试从会话重新加载对象时,问题就出现了.我得到的实体传递给选择字段必须是托管错误.

任何人都知道我可能会出错的地方?下面是控制器的代码.

public function previewdealAction(Request $request){

    $session = $this->getRequest()->getSession();
    $coupon = $session->get('coupon');
    $form = $this->createForm(new CouponType(), $coupon);

    if ($request->getMethod() == 'POST') {

        //bind the posted form values
        $form->bindRequest($request);

        //once a valid form is submitted ...
        if ($form->isValid()){
           //Proceed to Previewing deal
            $file = $coupon->getImage();
            $file->upload();
            $session->set('coupon', $coupon);

            $repository = $this->getDoctrine()
            ->getRepository('FrontendUserBundle:Coupon');
            $coupons = $repository->findAll();

            return $this->render('FrontendHomeBundle:Merchant:dealpreview.html.twig', array('coupon'=>$coupon, 'coupons'=>$coupons));

        }
    }

}
public function builddealAction(Request $request){

    $em = $this->get('doctrine')->getEntityManager();
    $user = $this->container->get('security.context')->getToken()->getUser();

    //check for a coupon session variable
    $session = …
Run Code Online (Sandbox Code Playgroud)

php symfony

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

Symfony 2唯一验证器

我正在尝试验证一个表单,其中包含一些需要唯一的字段 - 用户名和电子邮件地址.如果我提交表单,我会收到数据库错误.我想像我为其他一切使用验证器 - 现在我正在尝试在对象中使用自定义getter和isvalidUsername函数,我不确定在对象中使用实体管理器是否是执行此操作的最佳方法.继续我到目前为止所做的工作......

    Frontend\UserBundle\Entity\User:
         properties:
             email:
                  - NotBlank: ~
                  - Email: ~
         username:
             - NotBlank: ~
         getters:
              validUsername:
                   - "True": { message: "Duplicate User detected.  Please use a different username." }
              validEmail:
                   - "True": { message: "Duplicate email detected. Please use a different email." }
Run Code Online (Sandbox Code Playgroud)

fosuserbundle中内置了唯一的验证器,但我无法弄清楚如何使用它们.

php forms validation symfony

5
推荐指数
2
解决办法
6574
查看次数

独特的,不可预测的,12位数,整数id

我将如何生成这个...我想保持我的主键顺序,并为添加到数据库的每个新对象生成一个12位数的唯一引脚.

它不能仅仅是自动增量的原因是我不希望序列号很容易猜到.

它需要是整数,因为我将需要在电话簿上拨打验证码.

php mysql random

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

将JSON解码为Symfony实体

除了编写自定义脚本将JSON对象解码为PHP实体之外,有没有人知道是否有一种简单的方法?

我正在使用下面的脚本编码为JSON,但是当我解码它时,它是一个数组,而不是一个实体.

$serializer = new Serializer(array(new GetSetMethodNormalizer()), array('json' => new 
            JsonEncoder()));
            $json = $serializer->serialize($coupon, 'json');
            $session->set('json', $json);
Run Code Online (Sandbox Code Playgroud)

然后我以这种方式解码

$session = $this->getRequest()->getSession();
    $json = $session->get('json');
    $serializer = new Serializer(array(new GetSetMethodNormalizer()), array('json' => new JsonEncoder()));
    $coupon = $serializer->decode($json, 'json');
Run Code Online (Sandbox Code Playgroud)

但就像我说的......它不再是优惠券实体,它只是一个阵列.

php serialization decode symfony

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

标签 统计

php ×4

symfony ×3

decode ×1

forms ×1

mysql ×1

random ×1

serialization ×1

validation ×1