如何在jQuery对话框中使用post数据调用Symfony控制器?

如何在jQuery对话框中使用post数据调用Symfony控制器?,jquery,symfony,post,jquery-dialog,Jquery,Symfony,Post,Jquery Dialog,我正在尝试用一些post值加载控制器(因为它们是数据,所以不太适合放在GET;)我尝试了以下方法: $(“#对话框”).load('http://127.0.0.1:8000/XXX/YYY“,{“开始”:开始}).dialog('open') 在控制器中称为: $start=$request->get(“start”) 但我明白了:“注意:未定义变量:请求”有人能解释一下吗 编辑:这是我的控制器: namespace OurBundle\BuildingBundle\Controller;

我正在尝试用一些post值加载控制器(因为它们是数据,所以不太适合放在GET;)我尝试了以下方法:

$(“#对话框”).load('http://127.0.0.1:8000/XXX/YYY“,{“开始”:开始}).dialog('open')

在控制器中称为:

$start=$request->get(“start”)

但我明白了:“注意:未定义变量:请求”有人能解释一下吗

编辑:这是我的控制器:

namespace OurBundle\BuildingBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

use OurBundle\BuildingBundle\Entity\Availability;
use OurBundle\BuildingBundle\Form\AvailabilityType;

class AvailabilityController extends Controller
{ 
 public function formAction(Response $request = null ) {
    $iduser = '59';
    $start= $request->get("start");

    $form = $this->createForm(new AvailabilityType( $iduser, $start ), new Availability());

    return $this->render('OurBundleBuildingBundle:Availability:create.html.twig', array('form' => $form->createView()));

}
...
我很愚蠢,忘记了响应,但仍然不起作用(实际上对话框是空的(它不显示任何错误),但它应该显示一个表单(当我放入$start==null时,它会显示…)


当我在视图中显示$request时,它总是不显示任何内容(表示为null)

控制器中确保将请求作为参数

<?php

namespace Acme\DemoBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

class DemoController extends Controller
{

    /**
    * @param Request $request
    */
    public function myDemoAction(Request $request)
    {
        /** Get value from request */
        $start = $request->get('start');
   
        // ...
    }

}

我不知道这对您有什么帮助,也不清楚您是如何获得
$request
变量的(如果您将您的操作包括在问题中会更好),但我认为您在这里做错了:-如果您将对象作为数据提供,则通过POST加载数据,因此您正在传递对象,并且发送POST请求,但为什么要获取值作为
$request->get('start')


我认为你应该按照Patt的答案来做,但是你不应该通过
$request->get()
来获取值,而应该使用“$request->request->get('SOME_DATA')”(通过POST),或者
$request->query->get('SOME_DATA')
(通过get)。

好的,我不知道为什么,但我不得不这样做:


$start=$this->getRequest()->get('start');

从错误消息
$request->get(“start”)开始
那么,嗯,这是为什么呢?在PHP中似乎是一个与jQuery或对话框无关的错误。即使对于GET或对话框启动的请求,
$request
变量也应始终定义;未定义在某个地方是一个编码错误。
    $start = $request->get('start', 'your_default_value');