2016-06-16 26 views
1

在我的Laravel 5.2應用程序中,我使用CloudConvert轉換我的文件。我已經實現了異步轉換,它需要一個公共回調URL到我的網站。就像這樣:作爲API回調的Laravel路由:如何避免「響應內容必須是字符串或對象」錯誤?

public function upload(Request $request) { 
    // Store uploaded file... 
    CloudConvert::file(/* path to the file */) 
     ->callback(action('[email protected]')) 
     ->convert('pdf'); 
} 

而且回調:

public function saveFileFromProcess() { 
    try { 
     CloudConvert::useProcess($request->input('url')) 
      ->save(/* path to file storage */); 
    } catch (\Exception $e) { 
     Log::error($e->getMessage()); 
     return false; 
    }   

    return true; 
} 

現在,轉換工作得很好。但我可以在Laravel拋出一個錯誤日誌中看到轉換完成後:

響應內容必須是一個字符串或者「布爾」給出的()對象實施 __toString。

我明白,這是因爲路由被稱爲並返回truefalse,而不是如渲染一個視圖。

我應該怎麼回來避免錯誤?足夠的字符串了嗎?有什麼具體的我可以返回這種呼叫?

如果我還想停止腳本,例如,具體Request輸入缺少?

回答

3

您可以返回一個包含響應的數組,例如return ['status' => true];,該數組會自動轉換爲JSON,如果您使用AJAX訪問此路由,則可以使用它。

+0

是的,我也認爲這是要走的路。這是一個API調用,所以返回JSON是合法的。我最終做了'return response() - > json(['success'=> false],500)''返回錯誤並返回response() - > json(array('success'=> true)如果一切都很好。謝謝。 – lesssugar

相關問題