2017-07-17 3 views
0

hinzufügen Ich möchte wissen, wie kann ich zusätzliche Spalte in Laravel Sammlung, Rückkehr aus der Datenbank. zum Beispiel.wie man zusätzliches Element in Laravel Sammlung

Benutzermodell User-> id User-> Name

Reservation Modell Reservation-> User_id Reservation-> id

jetzt

$users = User::all(); 
$user_reservation = Reservation::all(); 

    foreach ($users as $user) 
    { 
     foreach ($user_reservation as $ur) 
     { 
      if ($user->id == $ur->user_id) 
      { 
      //Add extra column in to the users model 
      } 
     } 
    } 

Antwort

0

Laravel hat etwas, das $ Attends mit Accessors genannt wird. wie man es benutzt

Definieren Sie $ append im Modell, wo Sie eine benutzerdefinierte Sammlung hinzufügen möchten. in meinem Fall User-Modell

class User extends Model{ 

    protected $appends = ['user_eservation']; 

    public function getUserReservations($id) 
    { 
     return User::where('id', $id)->first(); 
    } 

    public function getUserReservationAttribute() 
    { 
     return $this->getUserReservations(Auth::user()->id); 
    } 
} 

und jetzt können Sie das benutzerdefinierte Attribut aufrufen, die in der Datenbank nicht vorhanden ist, durch die getUserReservatoin Funktion aufrufen.

zum Beispiel

$ users = Benutzer :: alle(); $ user_reservation = Reservierung :: all();

foreach ($users as $user) 
{ 
    foreach ($user_reservation as $ur) 
    { 
     if ($user->id == $ur->user_id) 
     { 
     $user->getUserReservations(); 
     } 
    } 
} 
0

$ user-> push (['extra_column' => $ value]);

Verwandte Themen