duanlaiyin2356 2018-07-02 08:17
浏览 107
已采纳

在symfony中与PrePersist合作

Well, I'm beginner in symfony and so far I developed a website where User can register himself and after login create forms dynamically, but my register form doesn't work as expected. My basic idea is when User tries to register himself, to precheck if the client number he entered already exists in the database, if it's not the case, the function throws an error, the code right below is what I thought so far but it doesn't seem to work. What exactly could be the issue?

//src/AppBundle/Entity/User.php

    /**
    * @ORM\PrePersist
    * groups={"Registration", "Profile"}
    */
    public function onPrePersist() //orm doctrine
    {
        $data = checkFirma($_POST['clientNr']);
        if(empty($data) || $data = ""){
            throw new Exception("Client Nr is mandatory");
        }
        else{
            $this->company = $data['userid'];
            $this->rolle = $data['rolle'];
        }

    }
    public function checkFirma($clientnr){
        $connection = $em->getConnection();
        $statement = $connection->prepare('SELECT userid, clientNr, rolle FROM companyClient WHERE clientNr = :nr');
        $statement->bindValue('nr', $clientnr);
        $statement->execute();
        $result = $statement->fetchAll('EAGER');
        //return $result
    }
  • 写回答

1条回答 默认 最新

  • dongliu8559 2018-07-02 08:45
    关注

    Your approach isn't very well designed cause you are violating the separation of concern principle.

    Your entity shouldn't know anything about databases or statements or similar cause its not responsible for that.

    Drop that validation parts from your entity and go for another solution.

    I would create a unique validation rule like here

    https://symfony.com/doc/current/reference/constraints/UniqueEntity.html

    And handle this constraints in your controller like here

    https://symfony.com/doc/current/validation.html

    Hope this helps

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染