【问题标题】:Should users be a resource in Laravel?用户应该是 Laravel 中的资源吗?
【发布时间】:2015-04-01 23:51:45
【问题描述】:

在具有用户身份验证的 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');

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

【问题讨论】:

标签: php authentication laravel laravel-routing


【解决方案1】:

如何确定什么是资源

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

看看上面的图表......这是一个ER图。在开始编码任何项目之前创建其中之一。没有地基你就不会盖房子……在启动任何 DB Driven 应用程序时,它会大有帮助。

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

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

【讨论】:

  • 哇,这太棒了@Rafael。我要为此做书签。谢谢
  • 谢谢你的回答,@Rafeal。我熟悉实体/关系图,但没有考虑过这种情况下的资源。谢谢。
猜你喜欢
  • 2019-04-20
  • 2017-06-24
  • 2011-07-11
  • 1970-01-01
  • 2012-12-17
  • 1970-01-01
  • 2019-12-01
  • 1970-01-01
  • 2013-02-27
相关资源
最近更新 更多