0

Ich bin verwirrt zu verwenden gehören in Laravel. Folgendes ist mein Code.Laravel wie zu verwenden BelongsToMany

users.php

public function guser() 
{ 
    return $this- 
>belongsToMany(User::class,'reportings','user_id','reporting'); 
} 

SQL TABELLEN

BERICHT TABELLE:

ID   USER_ID    REPORTING 
========================================== 
1   92     95,96 

USER TABLE:

ID   NAME 
================ 
92   Sanjay 
95   Ankur 
96   Parkar 

Ergebnis:

Name     Reporting Person 
====================================== 
Sanjay    Ankur 

Ergebnis erwartet:

Name     Reporting Person 
====================================== 
Sanjay    Ankur & Parkar 

können ihr mir bitte helfen erwartetes Ergebnis zu erhalten.

+0

Wie speichern Sie diese mehreren Werte (95,96) in Ihrer Tabelle? – robbyrr

+0

$ inp = Eingabe :: get ('multireporting'); $ values ​​= implode (",", $ inp); für ($ i = 0; $ i user_id = $ user-> id; $ news-> reporting = $ values; $ news -> save(); } –

Antwort

0

Ich glaube, dass goesToMany eine Pivot-Tabelle benötigt (wäre auch die beste Methode, um einzelne Werte in Ihrer Datenbank zu speichern) also warum nicht diese Route gehen?

Auf jeden Fall kann man so etwas tun:

User-Modell:

public function reportings() 
{ 
    return $this->hasMany(Reporting::class); 
} 

Und diese Funktion für die Benutzer greifen:

public function getReporters() 
{ 
    //This is just to grab a user, you will probably do it dynamically 
    $user = User::find(92); 

    $reportings = $user->reportings()->get(); 

    foreach ($reportings as $reporter) { 
     $arr = explode(',', $reporter->reporting); 

     for($i = 0; $i < count($arr); $i++) { 

      $reporters[] = User::find($arr[$i]); 

     } 
     foreach ($reporters as $reporter) { 
      //just for demo purpose 
      echo $reporter->name . ' '; 
     } 
    } 
} 

-Code von einigen schweren Refactoring profitieren könnten, aber sie bekomme eine Vorstellung.

Verwandte Themen