在 Laravel 中,您可以完全跳过控制器并执行执行业务逻辑并在路由中生成视图的任务。
例如,我有一个链接 b2.com/getUsers 所以在 paths.php 中我可以写:
Route::get('/getUsers',function()
{
$users=User::all(); //select * from users
return View::make('allUsers')->with('users',$users);
}
因此,在这里为 b2.com/getUsers 请求提供服务,我们根本没有使用控制器,您可以很好地执行此操作来处理应用程序中的所有请求(包括 get 和 post)。
但是,如果您的应用程序很大并且有 500 多个具有复杂业务逻辑的 url,那么想象一下将所有内容都放在一个 paths.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。