Tengo dos modelos que están unidos por una tabla dinámica, User y Task.

Tengo un user_id y un task_id.

¿Cuál es el más bonito manera de comprobar si existe un registro para esta combinación de usuario y la tarea?

InformationsquelleAutor datavoredan | 2016-02-09

4 Comentarios

  1. 29

    Tiene un par de opciones dependiendo de su situación.

    Si usted ya tiene un User instancia y quieres ver si tiene una tarea con un cierto id, usted puede hacer:

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

    Se puede revertir esta si tiene el Task instancia y desea comprobar si un usuario:

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

    Si usted acaba de tener el id, sin una instancia de cada uno, puede hacer lo siguiente:

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

    Usted puede utilizar el código siguiente:

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

Dejar respuesta

Please enter your comment!
Please enter your name here