这是我的代码:
public function userprofile($id)
{
$users = DB::table('users')->where('username', $id)->get();
$myposts = DB::table('posts')->where('maker', $id)->get();
$user_id = $id;
$postsvotes = DB::table('posts')
->join('upvotes', function($join)
{
$join->on('post_id', '=', 'upvotes.post_id')
->where('upvotes.user_id', $user_id);
})
->get();
return View::make('users.profile')->with('users', $users)->with('myposts', $myposts)->with('myvotes', $postsvotes);
}
我正在使用联接,并且您可以在其中看到此变量$ user_id,它应该是您从函数userprofile($ id)作为参数获得的$ id,但我似乎无法得到它该where子句的参数。
问候,
最佳答案
继续尝试(注意使用($ user_id)部分):
->join('upvotes', function($join) use ($user_id)
{
$join->on('post_id', '=', 'upvotes.post_id')
->where('upvotes.user_id', $user_id);
})
这可能是一个可变范围界定问题。请参见示例#3 http://php.net/manual/en/functions.anonymous.php中的闭包和作用域