我正在寻找一种简单的方法来获取现有的 Laravel 4 Controller 和模型,并让它们在访问“api.myapp.com”时返回 json 对象响应。
是否有可用于指定子域请求的路由过滤器?
最佳答案
我发现问题出在两件事上: 1)我忘记更新本地主机文件以正确解析子域。 2) Laravel 4 Route::resource 实例不能在多个 Route::group() 中重用。
我发现在不同子域上引用相同资源路由的唯一方法是手动指定每个 RESTful 路由并为每个资源创建一个新 Controller 。 Jeffery Way 有一个很棒的片段来加速这个过程。 Snippet here.
请注意每个复制的 Controller 之前的“Api..”,它在我的 Controller 目录中的名称相同。
Route::group(array('domain' => 'www.myapp.com'), function()
{
Route::resource('projects', 'ProjectsController');
});
Route::group(array('domain' => 'api.myapp.com'), function()
{
/ Resource API
// project API Resource
Route::get('projects', array('as' => 'projects', 'uses' => 'ApiProjectsController@index'));
Route::get('projects/{id}', array('as' => 'project', 'uses' => 'ApiProjectsController@show'));
Route::get('projects/new', array('as' => 'new_project', 'uses' => 'ApiProjectsController@new'));
Route::get('projects/{id}/edit', array('as' => 'edit_project', 'uses' => 'ApiProjectsController@edit'));
Route::post('projects', 'ApiProjectsController@create');
Route::put('projects/{id}', 'ApiProjectsController@update');
Route::delete('projects/{id}', 'ApiProjectsController@destroy');
});
下一步是在 ApiProjectController RESTful 方法中调用适当的响应。
关于controller - 在 Laravel 4 中是否有子域 Controller 的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15208642/