嗨,伙计们,我有一个Laravel应用程序,我已经建立。我想在不重写方法和控制器等的情况下创建一个API. 例如, 我有一个 routesweb.php, 它返回一个包含从业人员列表的视图, 并以表格的形式显示.
Route::get('/admin/practitioners', 'PractitionersController@index');
现在我想用同样的方法和同样的控制器来创建一个API,返回json数据而不是视图,而不需要创建一个新的控制器和方法.这是我在PractitionersController中的方法索引.
public function index()
{
$practitioners = Practitioner::whereApproval_status(1)->get()->sortBy('first_name');
$pendings = Practitioner::whereApproval_status(0)->get()->sortBy('first_name');
return view('admin.practitioners.index', compact('practitioners', 'pendings'));
}
你需要在 routes 目录下使用 api.php。然后检查请求是否来自api,像这样。
if (Request::wantsJson()) {
// return JSON
} else {
// return view
}
或者检查你是否不需要多种响应类型(xml, json...)
if( $request->is('api/*'))