我正在使用Symfony 2,我需要在MySQL表中插入一些数据。我知道如何使用表单来做到这一点:
$m=new table();
$form=$this->container->get('form.factory')->create(new tableType(),$m);
$request=$this->getRequest();
if($request->getMethod()=='POST')
{
$form->bind($request);
if ($form->isValid())
{
$rm=$this->container->get('doctrine')->getEntityManager();
$rm->persist($m);
$rm->flush();
}
有效,但我不想使用预定义的表单,因为我需要对输入进行复杂的控制。我需要用jQuery生成值。 那么如何继续将输入的值插入到我的表中呢?
答案 0 :(得分:0)
通常,您可以将整个请求传递给操作,如下所示
use Symfony\Component\HttpFoundation\Request;
// <...>
public function fooAction(Request $request)
{
$foo = $request->query->get('foo', 'default_value_for_foo'); // get the foo param from request query string (GET params)
$bar = $request->query->get('bar', 'default_value_for_bar'); // get the bar param from request POST params
}
您也可能对集合表单类型感兴趣,它可以允许您为表单生成多个行或实体(不固定)
答案 1 :(得分:0)
这比使用表单更容易:D
<?php
// ...
// fetch your params
$m = new table();
$m->setWhatever($request->get('whatever'));
// persist
$em = $this->get('doctrine.orm.entity_manager');
$em->persist($m);
注意:
$form->bind
已被弃用,请使用$form->handleRequest
createView()
视图,但Symfony中的验证组件非常强大:)。