当我尝试在表单提交上进行功能测试时,我遇到了这个问题:
testSearch.php:
public function testFormSubmission()
{
$client = $this->createClient();
$client->request('POST', '/search', array('nome' => 'Jan'));
...
}
app.php:
$app->post('/search', function (Request $request) use ($app)
{
$post_data = $request->get('form');
...
});
...但$ post_data为NULL。
如果我使用浏览器中的提交按钮进行提交,一切正常......
答案 0 :(得分:3)
您正在呼叫$request->get('form')
,但未将form
参数设置为任何内容。也许这就是你要找的东西:
$client->request('POST', '/search', array('form' => array('nome' => 'Jan')));
如果没有,您需要提供更多背景信息。
答案 1 :(得分:1)
$client->request('POST', '/search', array('nome' => 'Jan'));
请求方法的第三个参数似乎是请求参数(?& nome = Jan)
您应该使用抓取工具来模拟表单提交:
来自doc:
$form = $crawler->selectButton('submit')->form();
// set some values
$form['name'] = 'Lucas';
$form['form_name[subject]'] = 'Hey there!';
// submit the form
$crawler = $client->submit($form);
http://symfony.com/doc/current/book/testing.html
或使用第六个参数发送原始请求正文。