2015-06-19 45 views
1

我目前正在嘗試使用GuzzleHttp與Laravel一起訪問基於用戶輸入的API。GuzzleHttp和Laravel - 語法錯誤 - T_String

我的建立至今:

$client = new \GuzzleHttp\Client(); 
$response = $client 
     ->get('https://api.postcodes.io/postcodes/'Input::get('postcode')); 
dd($response->getBody()); 

,但返回的錯誤是:

FatalErrorException在ClinicController.php行129:語法錯誤,意外 '輸入'(T_STRING)

線129 https://api.postcodes.io/postcodes/'Input::get('postcode')

任何幫助爲什麼會發生這將非常感激。

回答

0

這是一個簡單的PHP錯誤。下面是PHP抱怨

->get('https://api.postcodes.io/postcodes/'Input::get('postcode')); 

行你有一個字符串

'https://api.postcodes.io/postcodes/' 

緊接着Input::get('postcode')。如果你想這兩個結合起來,你會想用.運算符來連接字符串

'https://api.postcodes.io/postcodes/' . Input::get('postcode') 

而且,要考慮的事情 - 在生產應用程序,你想要麼消毒或驗證Input::get('postcode')在使用URL請求之前實際上包含郵政編碼。總是假定有人會嘗試惡意使用您的系統,並且永遠不要相信用戶輸入將包含您認爲它包含的內容。

+0

謝謝Alan,我認爲'Input ::'確實會清理所有輸入?在使用之前,郵編通過「正則表達式」檢查器。 – Ben

0

嘗試如下:

$client = new \GuzzleHttp\Client(); 
$response = $client 
     ->get('https://api.postcodes.io/postcodes/'.Input::get('postcode')); 
dd($response->getBody()); 
相關問題