首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Symfony -控制器编辑操作

Symfony -控制器编辑操作
EN

Stack Overflow用户
提问于 2018-06-04 20:24:07
回答 1查看 1.6K关注 0票数 0

我在控制器中定义了表单,并设置函数来编辑/更新我可以通过ID找到的特定字段。我找不到我做错了什么。

代码语言:javascript
复制
 public function getUserEdit(Request $request)
{
    $form = $this->createFormBuilder()
        ->add('firstName', TextType::class, array('label' => 'First Name*', 'attr' => ['class'=>'form-control']))
        ->add('save', SubmitType::class, array('label' => 'Send', 'attr' => [
            'class' => 'btn btn-primary action-save'
        ]))
        ->getForm();

    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {

        $data = $form->getData();
        $firstName = $data['firstName'];

        $this->container->get('user')->editUser($firstName);
    }

    return $this->success();
}

服务

代码语言:javascript
复制
public function editUser($id)
{
    $editUsers = $this->getUserRepository()->find($id);

    if(empty($editUsers)) {
        $editUsers = new User();
        $editUsers->setId($id);
        $this->em->persist($editUsers);
        $this->em->flush();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-04 21:34:16

Symfony returns当使用find主键(通常是id)搜索单个对象时,您可以检查exist是否返回单个Entity (在本例中为User),以便使用insteance进行检查。

代码语言:javascript
复制
public function editUser($id)
{
    $editUsers = $this->getUserRepository()->find($id);

    if($editUsers insteance User) { // here just check 
        //$editUsers = new User(); // here You don't need create new object of class User, just remove
        $editUsers->setId($id);
        $this->em->persist($editUsers);
        $this->em->flush();
    }
    else {
        // do something if you need
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50680560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档