2014-02-24 31 views
10

我有一個腳本試圖使用HTTP PUT將數據發送到我的網站。通常,我只需通過從輸入流中讀取file_get_contents('php://input')來檢索它。然而,當我用拉拉維爾嘗試時,我什麼都沒有得到!爲什麼不?我如何讀取原始輸入數據?如何在laravel中獲取原始表單數據?

回答

19

Laravel攔截所有輸入。如果您使用5.6之前的PHP,則php://input流只能讀取一次。這意味着你需要從框架中獲取數據。您可以通過訪問在Request實例getContent方法,這樣做:

$content = Request::getContent(); // Using Request facade 
    /* or */ 
$content = $request->getContent(); // If you already have a Request instance 
            // lying around, from say the controller 

由於Illuminate\Request延伸Symfony\Component\HttpFoundation\Request,並且getContent這裏定義:http://api.symfony.com/3.0/Symfony/Component/HttpFoundation/Request.html#method_getContent

+4

我認爲理論上你不需要獲取實例,但可以直接使用外觀:'Request :: getContent();' – alexrussell

+0

鏈接已經死亡。 – wkm

+0

我試圖發送一個XML到Laravel並使用這個功能,它不工作。 –

0

您還可以使用Request::json($key, $default);返回的值json有效負載中的特定密鑰。