【发布时间】:2015-02-26 03:58:01
【问题描述】:
刚刚在我的加入查询中遇到了一个错误。
我在 foreach 中回显数据,并显示用户名。在其他页面上,它工作正常,每个用户名都与行中 ID 中的用户名匹配。但是,在下面的示例中,用户名返回始终是登录用户的名称。
希望下面的内容更有意义。谢谢。
查询是:
$query = DB::table('blogs')
->join('followers', 'blogs.id', '=', 'followers.blogid')
->where('followers.userid', Auth::user()->id)
->where('frontpage', '1')
->latest('lastupdated');
通过以下方式调用:
Route::get('following', array('before' => 'auth', function()
{
$slug = Route::getCurrentRoute()->uri();
$builds = Blog::findBuilds($slug);
return View::make('pages/home', compact('builds'), array('pageTitle' => 'Builds You Are Following'));
}));
然后在页面/主页上我将显示如下数据:
foreach ($builds as $build)
{
$usernameOfOwner = User::usernameFromID($build->userid);
}
然后...从ID中获取用户名的函数是:
public static function usernameFromID($id) {
$user = DB::table('users')->where('id', $id)->first();
return $user->username;
}
当我运行类似于顶部的查询但不是连接时,我网站上的其他任何地方,例如:
$query = static::where('frontpage', '1')->latest('lastupdated');
它工作正常,所以我唯一的猜测是它归结为 Join,因为那是代码的唯一不同部分。
【问题讨论】: