Symfony 2:无法从查询字符串中获取响应(基本示例)

时间:2014-12-09 20:30:20

标签: php symfony

我试图关注Symfony Book并从插入的网址中获取值。在我的控制器中,我有:

namespace Developer\MarkBundle\Controller;

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

class SimplestController extends Controller
{
public function simpleAction()
{
    return new Response('Simple Response');
}

public function getMeAction(Request $request, $page)
{
    $to_get = $request->query->get('page');
    var_dump($to_get);

    return new Response('gotcha!');
}

}

并在路由配置中:

get_me:
    path:     /get_me/{page}/{title}
    defaults: {_controller: DeveloperMarkBundle:Simplest:getMe }

当我在浏览器中写/ get_me / somepage / sometitle时,我应该得到值' somepage'对于$ page变量。但是var_dump显示为NULL。我不知道为什么。

2 个答案:

答案 0 :(得分:1)

您不需要从查询字符串参数中获取这些参数,您可以从路径中获取这些参数。由于您的路线定义为/get_me/{page}/{title},因此请确保您的操作正在将其作为参数......

public function getMeAction(Request $request, $page, $title)
{
    return new Response("page is $page and title is $title");
}

有关详细信息,请参阅有关Routing with Placeholders的手册部分

另外,请注意,如果您不使用Request对象,可以从方法参数中省略它,使其看起来更简单......

public function getMeAction($page, $title)
{
    return new Response("page is $page and title is $title");
}

答案 1 :(得分:0)

public function getMeAction(Request $request, $page, $title)
{
    var_dump($page); // returns somepage

    return new Response('gotcha!');
}