[英]Pass form data as parameter to Symfony2 controller function via AJAX
我认为这是正确的更复杂技巧之一,因此我决定在StackOverflow上寻求知识渊博的人员的帮助。 我的情况如下:我有两个实体,一个用户和一个帐户。 用户总是在注册时链接到一个帐户(并且取决于用户的类型,可能会链接到多个帐户。注册后,将调用函数saveUser()(通过前端的ajax),并检索提交的表单数据然后将数据以参数的形式传递给函数saveAccount($ data)(在saveUser()函数中调用),并创建帐户(有时会使用不同的数据集多次调用)创建各种帐户),该帐户已链接到用户。
现在,我想从管理面板中创建一个帐户而不创建用户,因此我想直接通过ajax(从前端)调用saveAccount($ data)并将表单数据作为PARAMETER传递给它(而不是在函数通过Request对象),这样我就可以使用相同的saveAccount($ data)函数,而不必创建一个工作于Request变量的saveAccount()。 这有意义吗? 这可能吗? 如果是这样,我将如何去做?
我没有发布任何代码,因为我没有看到它的需要,这更多是一个概念上的问题,但是如果您需要我到目前为止所拥有的代码,或者如果不清楚,我将很乐意进行阐述。
不应该有任何saveAccount
方法,你仅仅依靠实体之间的关系,即在setAccount
方法,或到addAccount
的情况下,一个你需要一个实体添加到Collection
。
然后,Doctrine将负责保存和保留所有内容。
为了保存数据,我将始终依靠RESTful接口[您可以通过FOSRestBundle轻松创建它 ],并且无论如何都可以通过ajax发送所有内容; 您将获得一个更流畅的界面和更可维护的代码。
对于可以通过带有表单数据的AJAX或另一个控制器内部在内部调用控制器功能的情况,以下解决方案有效:
public function saveAccount($data = null)
{
if (empty($data)) $data = $this->getRequest()->request->all();
...
}
然后,您可以将数组以与表单数据数组相同的格式传递给控制器函数,如果传递给函数,它将使用该数据,否则它将检索REQUEST(表单)数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.