我试图关注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。我不知道为什么。
答案 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!');
}