2016-04-28 89 views
0

我想允許用戶只CRUD他們自己的帖子。我不想創建一個新的中間件,而是利用現有的中間件。那麼,Entrust的默認中間件可以擴展到適合這個目的嗎?如何檢查用戶是否擁有Entrust的記錄?

class PostsController extends Controller 
{ 
    public function __construct() 
    { 
     $this->middleware('auth'); 
     $this->middleware('role:blogger|owner'); // <-- implement additional logic in here 
    } 

    ... 
} 
+0

你有沒有回答/解決方案不在這裏?我正面臨類似的問題,我正在考慮轉向標準的Laravel授權,現在它可用... –

+0

據我記憶,我還沒有找到任何直接的方式來處理這個問題,使用Entrust –

回答

0
@if (Auth::id() === $user->id){ 
    Edit 
    } 

如果您已經定義了Kernel.php

protected $routeMiddleware = [ 'auth' => '...' ]

在你的結構:使用雄辯

public function __construct() 
{ 
    $this->middleware('auth', ['only' => ['create']]); 
} 

隨着委託:

$users = User::whereHas('roles' => function($q){ 
$q->where('name', 'my-user-role') 
})->get(); 
+0

謝謝,但我想做中間件裏面的檢查 –

+0

@AlexanderLomia剛剛更新了答案,不確定這是你尋找的。 – score

+0

我只想檢查用戶的角色(**這是由Entrust的默認中間件**完成的)&&檢查用戶是否擁有他正在嘗試修改的帖子(**這不是**) –