我正在尝试进行测试。我使用REST客户端“Postman”将带有对象的POST请求发送到Laravel。我们的想法是将请求作为对象取回。但我认为我没有得到正确的结果。
在Postman中,我指定要发送的地址,选择“POST”,然后发送:
{
"url": "http://testingtesting.com"
}
在Laravel,我有一条通往地址的路线:
Route::post('api/test', 'TestController@index');
并且控制器应该返回json对象。如果我这样做:
class TestController extends BaseController{
public function index(){
$input = Input::json()->all();
var_dump($input);
}
}
我在POSTman中找回了一个数组:
array (size=1)
'url' => string 'http://testingtesting.com' (length=18)
那是我看“预览”的时候。如果我切换到“漂亮”,它会显示如下:
<pre class='xdebug-var-dump' dir='ltr'>
<b>array</b>
<i>(size=1)</i>
'url'
<font color='#888a85'>=></font>
<small>string</small>
<font color='#cc0000'>'http://testing.com'</font>
<i>(length=18)</i>
</pre>
但是我应该得到一个对象(stdClass),而不是一个数组。我需要做什么?
答案 0 :(得分:0)
我在这里得到了一些信息(laracasts forum)get-raw-post-data。 它似乎适用于:
class TestController extends BaseController{
public function index(){
$data = json_decode(file_get_contents("php://input"));
var_dump($data);
在Postman中,结果是:
object(stdClass)[144]
public 'url' => string 'http://testingtesting.com' (length=18)
但不确定这是推荐的方式,还是为什么/如何工作。我想我必须阅读更多相关信息。但如果有人想要添加更多信息或解决方案,请随意!