2016-06-16 17 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

相关问题