sql >> Database >  >> RDS >> Mysql

Laravel welsprekende vraag juiste gegevens

Als je welsprekend wilt gebruiken, moet je eerst een relatie definiëren. Eén bericht hoort bij een thread en een gebruiker. Hier leest u hoe u de relaties definieert:In het berichtmodel:

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

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

Om de inverse te definiëren doet u het volgende:Inside User-model:

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

Inside the Thread-model:

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

Nu kunt u het volgende doen in uw controller:

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

Nu heb je alle discussies van de momenteel ingelogde gebruiker. Ik weet niet zeker of ik de vraag goed heb, dus vraag het maar.

Bewerken:je zou het als volgt kunnen controleren:

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


  1. Een database verbinden met Python

  2. Server versus gegevensbron in verbindingsreeks

  3. laravel errno 150 externe sleutelbeperking is onjuist gevormd

  4. MySQL vind topresultaten voor elke groep