2017-07-17 19 views
0

laravelコレクションに余分な列を追加するにはどうすればいいですか?例えば。今laravelコレクションに余分な要素を追加する方法

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

答えて

0

Laravelには、アクセッサに$ appendsという名前のものがあります。使用方法

カスタムコレクションを追加するモデルに$ appendを定義します。私の場合ユーザーモデル

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); 
    } 
} 

に、今、あなたはgetUserReservatoin関数を呼び出すことにより、データベースで使用できないカスタム属性を呼び出すことができます。例えば

$ユーザーを=ユーザー::すべての(); $ user_reservation =予約::すべて();

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

する$ user->プッシュ

ユーザーモデル USER-> ID USER->名前

予約のモデル Reservation-> user_idを Reservation-> ID

( ['extra_column' => $ value]);

関連する問題