2016-07-07 55 views
0

下面的第一個@foreach會帶來創建該帖子的用戶。我需要輸出爲共享帖子的用戶,該帖子由下面的第二個@foreach返回。一個foreach語句中的兩個變量laravel

第一的foreach:

@foreach ($friendShares as $friendShare) 
<p> {{$friendShare->body}} by {{$friendShare->user->getname()}}</p> 
@endforeach 

二的foreach:

@foreach ($shares as $shares) 
<p> {{$shares->user->getname()}}</p> 
@endforeach 

我的問題是,什麼是正確的語法整合{{$股份有關>用戶>的getName()}}到@foreach($ friendShares as $ friendShare),可能是這樣的:

@foreach ($friendShares as $friendShare , $shares as $shares) 
<p> {{$friendShare->body}} by {{$shares->user->getname()}}}}</p> 
+0

無論是使用在查詢中的連接而得到從數據庫數據或進行陣列具有後id作爲密鑰,並共享名稱值。 lke $ sharesArray [postid] =「用戶名稱」; –

回答

0

我不認爲這是po可以在一個foreach中查看兩個數組,但可以執行以下操作:

@for ($i = 0;$i < min([count($friendShares),count($shares)]);$i++) 
    <p> {{array_values($friendShares)[$i]->body}} by {{array_values($shares)[$i]->user->getname()}}}}</p> 

這應該可以達到您想要的結果。

+0

我收到這個錯誤:array_values()期望參數1是數組,給定的對象 –

+0

對不起,我假設這兩個變量是數組,更新了它們。 – apokryfos

+0

仍然有以下錯誤...並非常感謝您的支持和耐心:)。嘗試獲取非對象的屬性(視圖:D:\ wamp \ www \ StuffSync \ resources \ views \ profile \ index.blade.php)....它位於for循環的行 –

0

你總是可以在一些變量

@foreach ($shares as $shares) 
<p> <?php $shares_get_name = $shares->user->getname() ?></p> 
    @foreach($friendShares as $friendShare) 
<p> {{$friendShare->body}} by {{$shares_get_name}}</p> 
@endforeach 

我希望用兩個嵌套的foreach ....對於存儲所有的值就是你想要的東西......如果不是可以請您詳細闡述烏爾需要整合

0

我改變了控制器的關係的查詢,這是更簡單明瞭,我(但仍在使用的關係,以獲得$ myFriends名單):

控制器代碼

 $myFriends = Auth::user()->friends()->lists('id'); 
     $sharedPosts = DB::table('shares') 
      ->join('users', 'users.id', '=', 'shares.user_id') 
      ->join('posts', function($join){ 
        $join->on('posts.id', '=', 'shares.post_id');     
       }) 
      ->where('shares.user_id', '=', $myFriends) 
      ->get(); 

return view('profile.index') 
     ->with('friendShares', $sharedPosts); 

查看代碼:

@foreach ($friendShares as $friendShare) 
<p> {{$friendShare->body}} by {{$friendShare->first_name}} {{$friendShare->last_name}}</p> 
@endforeach 
相關問題