Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Laravel eloquent fragt richtige Daten ab

Wenn Sie eloquent verwenden möchten, müssen Sie zunächst eine Beziehung definieren. Eine Nachricht gehört zu einem Thread und einem Benutzer. So definieren Sie die Beziehungen:Innerhalb des Nachrichtenmodells:

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

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

Um die Umkehrung zu definieren, gehen Sie wie folgt vor:Innerhalb des Benutzermodells:

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

Innerhalb des Thread-Modells:

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

Jetzt können Sie in Ihrem Controller Folgendes tun:

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

Jetzt haben Sie alle Threads des aktuell angemeldeten Benutzers. Ich bin mir nicht sicher, ob ich die Frage richtig verstanden habe, also fragen Sie einfach.

Bearbeiten:Sie könnten so überprüfen:

$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
}