2013-08-12 32 views
0

我正在PagodaBox上運行一個應用程序。本地它工作正常,但是當我將它推到寶塔時,出現以下錯誤:響應內容必須是實現了__toString(),「object」的字符串或對象。意思,爲什麼我只能在遙控器上使用它?

響應內容必須是實現了__toString(),「object」的字符串或對象。

這裏是路線:

Route::get('tweets/{q}', function($q) 
{ 
    return Twitter::getSearch(array('q' => $q, 'count' => 5, 'lang' => 'sv', 'result_type' => 'recent')); 
}); 

其他航線正常工作。這個錯誤是什麼意思,什麼可能導致這個錯誤?

+3

它看起來像Twitter :: getSearch將返回一個對象,而不是一個字符串。 Route :: get期望返回一個字符串,因爲Twitter :: getSearch返回的是一個對象而不是字符串,因此是錯誤。您可能需要發佈Twitter :: getSearch中的內容,以便讓您知道可能是什麼問題 –

回答

1

創建下面的函數

function utf8_encode_deep(&$input) { 
    if (is_string($input)) { 
     $input = utf8_encode($input); 
    } else if (is_array($input)) { 
     foreach ($input as &$value) { 
      self::utf8_encode_deep($value); 
     } 

     unset($value); 
    } else if (is_object($input)) { 
     $vars = array_keys(get_object_vars($input)); 

     foreach ($vars as $var) { 
      utf8_encode_deep($input->$var); 
     } 
    } 

嘗試做以下

$response = Twitter::getSearch(array('q' => $q, 'count' => 5, 'lang' => 'sv', 'result_type' => 'recent')); 

utf8_encode_deep($response); 

return response; 
2

這樣做是爲了查看返回的內容。

dd(Twitter::getSearch(array('q' => $q, 'count' => 5, 'lang' => 'sv', 'result_type' => 'recent'))); 

你必須返回查看具有__toString()方法的類,或者如果它的Ajax請求,那麼類似響應:: JSON($的數據);

相關問題