2014-12-04 18 views
1

我正在尝试测试Laravel API终端并希望在代码中调用它。使用Laravel请求对象设置发布数据

$request = Request::create($path, $method); 
    $response = Route::dispatch($request); 

这段代码适用于GET,但我需要也可以设置POST调用。将$方法设置为POST也适用,但我找不到详细说明如何附加发布数据的文档。

有什么建议吗?

+0

这是Laravel 5吗? – Richie 2014-12-04 12:04:47

+0

这是Laravel v4 – Andy 2014-12-04 12:16:34

+0

那么你得到了什么错误信息?你说它设置为POST作品 – Richie 2014-12-04 12:19:59

回答

4

正如您在评论中提到的那样,您可以使用$this->call(),但实际上您也可以使用当前的代码执行此操作。如果您在Request::create()功能的签名看看你可以看到,它需要$parameters作为第三个参数:

public static function create($uri, $method = 'GET', $parameters = array(), $cookies = array(), $files = array(), $server = array(), $content = null) 

而且文档块说:The query (GET) or request (POST) parameters

因此可以简单地将数据添加到Request::create()

$data = array('foo' => 'bar'); 
$request = Request::create($path, $method, $data); 
$response = Route::dispatch($request); 
+0

非常方便的手工修补程序:'$ request = Request :: create($ path,$ method,$ data);' – 2016-11-02 13:26:00