【问题标题】:persist in one controller and flush in another坚持在一个控制器中并在另一个控制器中刷新
【发布时间】:2014-02-26 03:54:54
【问题描述】:

为谷歌搜索者编辑: 不可能在一个控制器中持久化并在另一个控制器中刷新。

我有两个控制器,由 ajax 调用。当树枝发生变化时调用第一个,这是我坚持的地方。

当点击“保存”按钮时调用第二个,这就是我调用flush的时候。

不幸的是,它不会改变数据库中的任何内容。

这是我的控制器:

public function update_accountAction(Request $request)
{   
    Try
    {
        $code = $request->request->get('code'); 
        $name = $request->request->get('name'); 

        $em = $this->getDoctrine()->getManager();
        $repo = $em->getRepository('NRtworksChartOfAccountsBundle:Accounttree');

        $to_change = new Accounttree();
        $to_change = $repo->findOneByCode($code);

        $to_change->setName($name);
        $to_change->setCode($code);

        $em->persist($to_change);

        $response = array("code" => 100, "success" => true, "modified" => $code);
        return new Response(json_encode($response));
    }
    Catch(Exception $e)
    {
        $response = array("code" => 100, "success" => false, "error" => $e);
        return new Response($response);
    }

}

下一个:

public function save_changesAction()
{
     Try
     {
        $em = $this->getDoctrine()->getManager();
        $em->flush();
        $response = array("code" => 100, "success" => true);
        return new Response(json_encode($response));
     }
     Catch(Exception $e)
     {
        $response = array("code" => 100, "success" => false, "error" => $e);
        return new Response($response);
     }


    $response = array("code" => 100, "success" => true);
    return new Response(json_encode($response));

}

显然没有发生错误,但没有进行任何更改..

我在想问题是实体管理器仅限于一个控制器,但我没有成功调用它...

帮助?

ps:我有一个测试控制器,我在其中进行持久化和刷新,并且更改在数据库中完成。

【问题讨论】:

    标签: symfony doctrine-orm flush persist


    【解决方案1】:

    persist() 调用在请求之间不会被记住。

    因此,您不能在一个请求中调用persist(),在后续请求中调用flush()

    您将需要实现一个缓存逻辑(即保存标记为在会话中持久化的实体)以使其工作。

    【讨论】:

    • 我就是这么想的。我会在今晚晚些时候尝试这些课程。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多