无法在laravel中传递变量

时间:2016-07-07 07:31:31

标签: php laravel

在下面的控制器中,如果我返回$friendPosts(具有帖子ID),则视图中的ID会显示没有问题。
但是当我尝试返回$sharedPosts(具有整行)时,视图中没有任何内容。

控制器

public function getProfile($email)
{
    $myFriends    = Auth::user()->friends()->lists('id');                 
    $friendShares = Share::where('user_id',$myFriends)->get();
    $friendPosts  = $friendShares->lists('post_id');
    $sharedPosts  = Post::where('id', $friendPosts)->get();

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

视图

@foreach ($friendShares as $friendShares)
  <p> {{$friendShares}}</p>
@endforeach

1 个答案:

答案 0 :(得分:0)

$myFriends    = Auth::user()->friends()->lists('id');                 
$friendShares = Share::where('user_id',$myFriends)->get();
$friendPosts  = $friendShares->lists('post_id');
$sharedPosts  = Post::where('id', $friendPosts)->get();

应该是

$myFriends    = Auth::user()->friends()->lists('id');                 
$friendShares = Share::whereIn('user_id',$myFriends)->get();
$friendPosts  = $friendShares->lists('post_id');
$sharedPosts  = Post::whereIn('id', $friendPosts)->get();

您正在处理更多ID,而不只是一个,因此您必须使用whereIn()来查看值数组。

如果你告诉我们你真正想要/试图用你的代码做什么,下次会很有用。