sql >> Base de Datos >  >> RDS >> Mysql

Datos correctos de consulta elocuente de Laravel

Si desea utilizar elocuente, primero debe definir una relación. Un mensaje pertenece a un hilo y un usuario. Aquí se explica cómo definir las relaciones:Dentro del modelo de mensaje:

public function user()
{
   return $this->belongsTo('App/User'); //User model
}

public function thread()
{
  return $this->belongsTo('App/Thread'); //Thread model
}

Para definir el inverso, haga lo siguiente:Modelo de usuario interno:

public function threads()
{
  return $this->hasMany('App/Thread');
}

Dentro del modelo Thread:

public function messages()
{
   return $this->hasMany('App/Message');
}

Ahora puede hacer lo siguiente en su controlador:

$threads = Auth::user()->threads;

Ahora tiene todos los hilos del usuario que ha iniciado sesión actualmente. No estoy seguro de si entendí bien la pregunta, así que pregunte.

Editar:podría verificar así:

$thread = Thread::find($id);
$isCurrentUserThread = false;
foreach(Auth::user()->threads as $currentUserThread) {
   if($currentUserThread->id == $thread->id) {
       $isCurrentUserThread = true;
      //$thread belongs to the current user
   }
}

if($isCurrentUserThread) {
    //the thread belongs to the current user
} else {
   //it doesn't belong to the current user
}