2013-07-27 91 views
3

在爲AJAX對API進行調用的網站創建資源控制器PhotosController後,似乎可以在普通網站和API上使用資源控制器。用於API和非API的Laravel資源控制器使用

這將顯示一個HTML頁面Photo與ID = 1

http://domain.com/photos/1 

和Javascript使用該更新Photo資源,並返回一個JSON響應

PUT http://domain.com/api/v1/photos/1 

問題如下:將我們有2 PhotoControllers,一個用於處理API使用,另一個用於非API?

回答

3

不可以。您可以有兩個單獨的路線指向相同的控制器和操作。

Route::get('/photos/1', 'PhotoContr[email protected]'); 
Route::get('/api/v1/photos/1', '[email protected]'); 

然後,在您的控制器方法中,您可以測試請求是否來自Ajax。

if (Request::ajax()) { 
    // Do some crazy Ajax thing 
} 
+1

Route::resource('venue', 'VenueController'); Route::group(array('prefix' => 'api'), function(){ Route::resource('venue', 'VenueController', array('only' => array('index', 'show'))); }); 

然後,在控制器中,我用這個條件?對我來說,這是一個幹問題,有些不必要... –

+0

你不會想。我改變了編輯我的答案。感謝您指出這一點,@麥克安東尼 – searsaw

2

我使用路由組前綴API調用:你爲什麼包括域

if (Route::getCurrentRoute()->getPrefix() == 'api') { 
    return Response::json($venues->toArray()); 
} 
相關問題