Laravel orderBy Not Noting to View

时间:2016-01-24 19:41:40

标签: laravel

我使用以下代码从数据库表中提取集合。

$profileVisits = DB::table('recently_visited')
    ->where('visitor_id',Auth::user()->id)
    ->orderBy('times_visited', 'desc')->get();

    return view('profile.index')
        ->with([
            'user' => $user,
            'posts' => $posts,
            'profileVisits' => $profileVisits,
        ]);

当我dd($ profileVisits)时,它会显示具有正确降序结果的集合。但是,当我使用以下代码将信息提取到我的视图中时,它不会像它应该的那样下降。 orderBy查询构建器是撤消还是带有"返回视图..."码?

视野中的代码......

@if (!$user->profileVisits->count())

@else
    @foreach ($user->profileVisits as $topVisits)
        <p>{{ $topVisits->getUsername() }}</p>
    @endforeach
@endif

用户模型:

public function profileVisits()
    {
        return $this->BelongsToMany('App\Models\User', 'recently_visited', 'visitor_id', 'profile_id');
    }

    public function addProfileVisits(User $user)
    {
        $this->profileVisits()->attach($user->id);
    }

    public function previouslyVisited(User $user)
    {
        return (bool) $this->profileVisits()->get()->where('id', $user->id)->count();
    }

1 个答案:

答案 0 :(得分:0)

实际上,我只是想通了。在用户模型上,我添加了orderBy而不是在Controller中使用它。见下文。

用户模型:

public function profileVisits()
{
    return $this->BelongsToMany('App\Models\User', 'recently_visited', 'visitor_id', 'profile_id')->orderBy('times_visited', 'desc');
}