2016-02-09 73 views
8

我有两个模型,它们通过数据透视表UserTask连接。Laravel:查找是否存在数据透视表记录

我有一个user_idtask_id

什么是最新的方式来检查是否存在此用户和任务组合的记录?

+3

我希望这将是解决http://stackoverflow.com/questions/24555697/check-if-belongstomany-relation-exists-laravel –

回答

13

根据您的情况,您有几个选项。

如果你已经有了一个User例如,你想看看它是否有一定的ID的任务,你可以这样做:

$user = User::find(1); 
$hasTask = $user->tasks()->where('id', $taskId)->exists(); 

可以扭转这个,如果你有Task实例,并希望检查用户:

$task = Task::find(1); 
$hasUser = $task->users()->where('id', $userId)->exists(); 

如果你只是有ID,不会每个实例,你可以做到以下几点:

$hasPivot = User::where('id', $userId)->whereHas('tasks', function ($q) use ($taskId) { 
     $q->where('id', $taskId); 
    }) 
    ->exists(); 
+1

这应该是公认的答案 – captainblack

+0

@patricus,看来你能帮助我。看看这个:https://stackoverflow.com/questions/44519339/how-can-i-update-pivot-table-on-laravel –

2

可能是你搜索这个?

$users = User::has('task')->get(); 
-1

您可以使用下面的代码:

$ user = User :: find(1); ();}其中('task_id',$ taskId) - > exists();}其中('task_id',$ taskId) - > exists();

相关问题