在 Laravel 中,您可以完全跳过控制器并完成执行业务逻辑和在路由中生成视图的任务。
例如,我有一个链接 b2.com/getUsers,所以在 routes.php 中我可以写:
Route::get('/getUsers',function()
{
$users=User::all(); //select * from users
return View::make('allUsers')->with('users',$users);
}
因此,在这里为请求 b2.com/getUsers 提供服务,我们根本没有使用控制器,您可以很好地处理应用程序中的所有请求,包括获取和发布。
但是,如果您的应用程序很大并且有 500 多个具有复杂业务逻辑的 url,那么想象一下将所有内容放在一个 routes.php 中。它将完全使它变得混乱,建筑的整个目的将被打败。因此我们通常做的就是保留 routes.php 仅用于路由并编写所有业务逻辑(以及在控制器内生成视图)
所以同样的例子可以解为:
要处理链接:b2.com/getUsers,在 routes.php 中
Route::get('/getUsers', array('before' => 'auth', 'uses' => 'MyController@getUsers'));
MyController 的 getUsers 方法定义如下:
public function getUsers()
{
$users=User::all(); //select * from users
return View::make('allUsers')->with('users',$users);
}
我通常为相关活动创建一个控制器,例如登录/注册/注销。我创建了 AuthController,所有与这些活动相关的链接都通过 routes.php 路由到 AuthController。