停止路由组进行处理

时间:2014-12-17 17:17:15

标签: php laravel laravel-4

我正在使用Laravel路由组通过api.example.com和www.example.com调用我的控制器

Route::group(['domain' => Config::get('app.api_server')], function ()
{

    //API entry point

});

Route::group(['domain' => Config::get('app.web_server')], function ()
{
   //Web Application entry point
});

然而,当我向API发出请求时,路由组的Web应用程序部分中的所有业务逻辑和数据库查询仍然会被执行,这对我们的用例来说是低效且不必要的。反之亦然,进入Web会执行API入口点内的所有代码。如何防止不相关的代码执行?

1 个答案:

答案 0 :(得分:2)

回调函数闭包是作为对Route :: group()的调用的一部分执行的,因此无法阻止回调的执行。但是,您可以首先防止路由被定义。

// only create the api routes if the current request is for the api
if (Request::getHttpHost() == Config::get('app.api_server')) {
    Route::group(['domain' => Config::get('app.api_server')], function ()
    {
        //API entry point
    });
}

// only create the web app routes if the current request is for the web app
if (Request::getHttpHost() == Config::get('app.web_server')) {
    Route::group(['domain' => Config::get('app.web_server')], function ()
    {
       //Web Application entry point
    });
}