Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Dados corretos de consulta eloquente do Laravel


Se você quiser usar eloquente, você deve primeiro definir um relacionamento. Uma mensagem pertence a um tópico e a um usuário. Aqui está como definir os relacionamentos:Dentro do modelo Message:
public function user()
{
   return $this->belongsTo('App/User'); //User model
}

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

Para definir o inverso, faça o seguinte:Inside User model:
public function threads()
{
  return $this->hasMany('App/Thread');
}

Dentro do modelo Thread:
public function messages()
{
   return $this->hasMany('App/Message');
}

Agora você pode fazer o seguinte em seu controlador:
$threads = Auth::user()->threads;

Agora você tem todos os tópicos do usuário conectado no momento. Não tenho certeza se acertei na pergunta, então pergunte.

Edit:Você pode verificar assim:
$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
}