2016-07-07 20 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 
相关问题