0

我目前在用户创建模型的项目中工作,只有他/她可以查看、编辑或删除。

Create Part 由 Eloquent Relationships 完成,但对于其他操作,我想将它与 Route Model 绑定结合起来,而不是在控制器中手动进行。我尝试使用中间件解决它,但我无法访问资源。

有人可以指出正确的方向吗,欢迎任何最佳实践!

4

1 回答 1

2

我个人使用路由模型绑定,但仅在用户拥有记录时才允许模型绑定。

这意味着无论如何 - 人们永远无法访问其他人的记录。例如,在我的路线中,我可以做

    $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(但您可以只重定向或其他东西 - 由您决定)。

于 2015-07-12T00:36:50.623 回答