我目前在用户创建模型的项目中工作,只有他/她可以查看、编辑或删除。
Create Part 由 Eloquent Relationships 完成,但对于其他操作,我想将它与 Route Model 绑定结合起来,而不是在控制器中手动进行。我尝试使用中间件解决它,但我无法访问资源。
有人可以指出正确的方向吗,欢迎任何最佳实践!
我目前在用户创建模型的项目中工作,只有他/她可以查看、编辑或删除。
Create Part 由 Eloquent Relationships 完成,但对于其他操作,我想将它与 Route Model 绑定结合起来,而不是在控制器中手动进行。我尝试使用中间件解决它,但我无法访问资源。
有人可以指出正确的方向吗,欢迎任何最佳实践!
我个人使用路由模型绑定,但仅在用户拥有记录时才允许模型绑定。
这意味着无论如何 - 人们永远无法访问其他人的记录。例如,在我的路线中,我可以做
$router->get('property/{property}, ['uses' => PropertyController@show]);
然后在我的 RouteServiceProvider 中:
$router->bind('property', function($value) {
$property = \App\Property::findOrFail($value);
if ((int)$property->user_id !== (int)auth()->id()) {
abort (404);
}
return $property;
});
所以在上面的例子中——我们有一个property
路由,它会尝试找到给定的属性记录。然后它将检查用户是否拥有该记录,否则它会抛出 404(但您可以只重定向或其他东西 - 由您决定)。