Mam dwa modele połączone tabelą przestawną: User
i Task
.Laravel: znajdowanie rekordu tabeli przestawnej
Mam user_id
i task_id
.
Jaki jest najdogodniejszy sposób sprawdzenia, czy istnieje rekord dla tej kombinacji użytkownika i zadania?
Mam dwa modele połączone tabelą przestawną: User
i Task
.Laravel: znajdowanie rekordu tabeli przestawnej
Mam user_id
i task_id
.
Jaki jest najdogodniejszy sposób sprawdzenia, czy istnieje rekord dla tej kombinacji użytkownika i zadania?
Masz kilka opcji w zależności od sytuacji.
Jeśli masz już instancję User
i chcesz sprawdzić, czy to ma za zadanie z pewnym id, można zrobić:
$user = User::find(1);
$hasTask = $user->tasks()->where('id', $taskId)->exists();
można odwrócić, jeśli masz instancję Task
i chcą sprawdzić dla użytkownika:
$task = Task::find(1);
$hasUser = $task->users()->where('id', $userId)->exists();
Jeśli tylko mają identyfikatory, bez instancji każda, można wykonać następujące czynności:
$hasPivot = User::where('id', $userId)->whereHas('tasks', function ($q) use ($taskId) {
$q->where('id', $taskId);
})
->exists();
to powinna być zaakceptowana odpowiedź – captainblack
@patricus, Wydaje się, że możesz mi pomóc. Spójrz na to: https://stackoverflow.com/questions/44519339/how-can-i-update-pivot-table-on-laravel –
Czy możesz tego szukać?
$users = User::has('task')->get();
Możesz użyć poniższego kodu:
$ user = Użytkownik :: znajdź (1);
$ hasTask = $ user-> tasks() -> where ('task_id', $ taskId) -> exists();
Mam nadzieję, że rozwiąże to problem http://stackoverflow.com/questions/24555697/check-if-belongstomany-relations-exists-laravel –