用户应该是 Laravel 中的资源吗?

Should users be a resource in Laravel?

在具有用户身份验证的 Laravel 应用程序中,用户应该是资源吗?

Route::resource('user', 'UserController');

如果是这样,处理身份验证的正确方法是什么?向 UsersController 添加登录和注销方法?

现在我有以下处理注册和身份验证过程的路由

Route::get('/login', ['as' => 'login', function () {
    return View::make('login');
}]);

Route::post('/login', 'AuthController@login');

Route::get('/register', ['as' => 'register', function () {
    return View::make('register');
}]);

Route::post('/register', 'AuthController@register');

将用户移动到资源路径并可能创建一些自定义操作似乎合乎逻辑。您将如何处理这个问题,最佳做法是什么?

如何确定资源

在确定什么应该是资源时,我通常会参考我的数据库模型。您可以在 DIA 或等效物中创建数据库模型。如果您对实体关系有很好的理解,那么确定什么应该或不应该是资源应该没有问题。

看看上面的图...这是一个 ER 图。在开始编写任何项目之前创建其中之一。没有地基是建不了房子的……它在启动任何数据库驱动的应用程序时都有很大帮助。

蓝色方块是实体(tables),黄色椭圆是属性(table中的列),红色菱形是关系。

90% 的情况下,您的实体 (tables) 应该是资源并具有与之关联的模型。然后在 Eloquent ORM 模型中定义关系。现在你已经为你完美地安排好了一切。资源是任何需要具有 CRUD 能力并且通常适用于您的实体 (tables) 的东西。由于用户是一个实体...是的,它绝对应该是一种资源,并在您的项目中拥有自己的模型。