用于API和非API使用的Laravel资源控制器

Nyx*_*nyx 4 php restful-url laravel laravel-4

PhotosController为API执行AJAX调用的网站创建资源控制器之后,资源控制器似乎可以在普通网站和API上使用.

这将显示Photoid = 1 的HTML页面

http://domain.com/photos/1
Run Code Online (Sandbox Code Playgroud)

和Javascript使用以下更新Photo资源并返回JSON响应

PUT http://domain.com/api/v1/photos/1
Run Code Online (Sandbox Code Playgroud)

问题:我们是否有2个PhotoControllers,一个用于处理API使用,一个用于非API?

sea*_*saw 5

不可以.您可以将两条不同的路线指向同一个控制器和操作.

Route::get('/photos/1', 'PhotoController@index');
Route::get('/api/v1/photos/1', 'PhotoController@index');
Run Code Online (Sandbox Code Playgroud)

然后,在您的控制器方法中,您可以测试请求是否来自Ajax.

if (Request::ajax()) {
    // Do some crazy Ajax thing
}
Run Code Online (Sandbox Code Playgroud)