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

Posted

技术标签:

【中文标题】用户应该是 Laravel 中的资源吗?【英文标题】:Should users be a resource in 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');

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

【问题讨论】:

如果应用程序足够小,那么可以,为用户创建一个资源控制器来处理 CRUD。对于身份验证,只需将身份验证添加到“之前”:laravel.com/docs/4.2/security#protecting-routes 【参考方案1】:

如何确定什么是资源

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

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

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

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

【讨论】:

哇,这太棒了@Rafael。我要为此做书签。谢谢 谢谢你的回答,@Rafeal。我熟悉实体/关系图,但没有考虑过这种情况下的资源。谢谢。

以上是关于用户应该是 Laravel 中的资源吗?的主要内容,如果未能解决你的问题,请参考以下文章

Larave中CSRF攻击

我应该在 Laravel 中嵌套资源的路由吗?

我想自学laraver,请诸位前辈给一些建议,谢谢

数据库中的计算字段 - Laravel

laravel 5 不删除用户记录

使用 Datatables 在 Laravel 中处理大量行的最佳方法是啥?