Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Laravel wymowne zapytanie o właściwe dane

Jeśli chcesz używać elokwentnego, musisz najpierw zdefiniować relację. Jedna wiadomość należy do wątku i użytkownika. Oto jak zdefiniować relacje:W modelu wiadomości:

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

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

Aby zdefiniować odwrotność, wykonaj następujące czynności:Model użytkownika wewnętrznego:

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

Wewnątrz modelu wątku:

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

Teraz możesz wykonać w kontrolerze następujące czynności:

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

Teraz masz wszystkie wątki aktualnie zalogowanego użytkownika. Nie jestem pewien, czy dobrze odpowiedziałem na pytanie, więc pytaj.

Edycja:Możesz sprawdzić w ten sposób:

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Równoważenie obciążenia z uwzględnieniem bazy danych:jak przeprowadzić migrację z HAProxy do ProxySQL

  2. MySQL i Splunk - Wybierz i dołącz

  3. Użyj Access lub MySQL jako wewnętrznej bazy danych

  4. Szukasz samouczka, jak zbudować prywatny system przesyłania wiadomości przy użyciu PHP

  5. Zezwolić użytkownikowi na tworzenie i zmienianie tabeli?