在具有用户身份验证的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');
将用户移动到资源路径并创建一些自定义操作似乎是合乎逻辑的。你会如何处理这个问题,最佳做法是什么?
答案 0 :(得分:3)
如何确定资源应该是什么
在确定应该是什么资源时,我通常会参考我的数据库模型。您可以在DIA或等效项中创建数据库模型。如果您对实体关系有很好的理解,那么确定应该或不应该是什么资源应该没有问题。
看一下上图...这是一个ER图。在开始编码任何项目之前创建其中一个。你不会在没有基础的情况下建造房屋......在启动任何数据库驱动的应用程序时它会有所帮助。
蓝色方块是实体(表格),黄色椭圆是属性(表格中的列),红色钻石是关系。
90%的时间您的实体(表格)应该是资源并且具有与之关联的模型。然后在模型中为Eloquent ORM定义您的关系。现在,您已经为您准备了一切。资源是任何需要具有CRUD能力的资源,通常适用于您的实体(表)。由于用户是一个实体......是的,绝对应该是一个资源,并在项目中拥有自己的模型。