簡體   English   中英

Laravel:如何為嵌套資源控制器上的 API 方法編寫策略類?

[英]Laravel: How can I write a policy class for API methods on a nested resource controller?

我正在處理UserTask模型之間的多對多關系。 一個用戶屬於多個任務,一個任務屬於多個用戶。 我有一個名為task_user的數據透視表。

在我的 API 中,我定義了一個路由,如下所示:

Route::get('/users/{user}/tasks', 'TaskUserController@all');

我想編寫一個策略來強制當前登錄的用戶auth()->user是路由中被請求的用戶。 基本上,用戶只能查看他們自己的任務。

如何為嵌套資源控制器TaskUserController編寫策略類?

資源的嵌套與制定策略無關。

制定您的 UserPolicy。

class UserPolicy()
{
    public function view(User $authorizedUser, User $user) {
        return $authorizedUser->is($user);
    }
}

在您的控制器中,您可以使用authorize()助手來授權操作。 或者,它可以在您的表單請求中使用Auth::user()->can()

class TaskController {
    public function all(User $user)) {
        $this->authorize('view', $user);

        return $user->tasks;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM