我可以从js文件获取有关Symfony2响应对象的信息

时间:2013-06-24 07:27:30

标签: javascript symfony

我正在使用Symfony2。 我想以这种方式在php控制器中进行一些验证:

if ($request->isMethod('POST')) {
            $old_name = $category->getName();

            $new_name = $request->get('value');

            if ($same == 0) {  
                //valid
                $new_response = new Response($name);
                return $new_response; 
            } else { 
                //not valid
                $old_response = new Response($old_name);
                return $old_response;
            }  
 }

有没有办法检查.js文件中发送了哪个响应 - $new_response$old_response?其中的一点是向主体附加一条消息,告诉用户如果发送的响应为$old_response,则他输入了重复值。如果发送的回复是$new_response,请删除此消息。

非常感谢您提前! :)

2 个答案:

答案 0 :(得分:1)

只需查看回复正文即可。第一个构造函数参数是响应的内容(通常是解析后的模板)。

也许你想使用JsonResponse($data)

答案 1 :(得分:1)

您可以使用 JSON 来返回一组数据,而不仅仅是名称。

<强>控制器:

    if ($same == 0) {  
        //valid
        $new_response = new JsonResponse(array('type' => 'new', 'name' => $name));
        return $new_response; 
    } else { 
        //not valid
        $old_response = new JsonResponse(array('type' => 'old', 'name' => $old_name));
        return $old_response;
    }

<强> JS:

$.ajax({
    url: '...',
    type: 'POST',
    dataType: 'json',
    data: 'value=...',
    success: function(json) {
        if (json.type == 'new')
            // this is new response
        else
            // this is old or some other response

        alert(json.name); // this is the response body (old or new name)
    }
});

另见: