2017-08-13 37 views
1

我正在尋找在我的API中執行子請求,到我的API的其他部分。我之前在Symfony中做過這個 - 但我不確定如何在Laravel中實現這一點。在Laravel 5中的子請求

$url = route('some.route', ['param' => $val]); 
$request = Request::create($url, 'get', []); 
Route::dispatch($request); 

似乎總是無法給人沿

Class api does not exist 

所以我已經試過

app()->handle($request); 

這工作線的東西,但處理的請求,但我不能處理任何異常拋出(例如驗證,因爲應用層處理它並拋出html響應)

Handle有HttpKernelInterface的簽名,所以可以採取分請求和捕獲異常的屬性 - 但這些都沒有用....

...->handle($request, HttpKernelInterface::SUB_REQUEST, false); 

是否有可能做到這一點在Laravel,而不必發送實際的HTTP請求?

感謝

+0

它看起來像不好的設計。 如果你總是實現這個,你應該看看GraphQL。 另一種方法是將邏輯從控制器移到專用類(看看服務模式)。它會給你一個調用某些邏輯而不處理其他僞請求的能力。 – pinguinjkeke

回答