如何为“查看我的个人资料的用户”创建逻辑?

时间:2015-02-13 06:40:15

标签: mysql laravel eloquent

这可能是一个愚蠢的问题,但我不确定如何写这个逻辑...... 假设我有一个包含用户和个人资料的应用程序,我想处理一个显示所有看到我(auth用户)个人资料的用户的视图。

我该怎么做?

由于

1 个答案:

答案 0 :(得分:0)

也许是这样的?

在记录访问的用户模型中创建一个函数,只要显示用户页面,就需要从用户控制器触发该函数。

public function logPageView()
{
    DB::table('user_views')->insert(array(
        'user_id' => $this->id,
        'agent' => Request::server('HTTP_USER_AGENT'),
        'user' => Auth::check()?Auth::user()->username:null,
        'session' => Session::getId(),
        'created_at' => \Carbon\Carbon::now(),
        'updated_at' => \Carbon\Carbon::now()
    ));
}

在用户控制器中创建show_views函数以显示已记录的视图。 groupBy确保每个会话每天只显示一次访问。您可以删除或调整它以满足您的需求。

public function show_views($id)
{
    $views = DB::table('user_views')
        ->where('user_id', $id)
        ->orderBy('created_at', 'DESC')
        ->groupBy('session', DB::raw('DATE(created_at)'))
        ->get();

    return View::make('user_views.show', [
        'views' => $views,
        'id' => $id
    ]);
}

至少这应该让你去:)