这可能是一个愚蠢的问题,但我不确定如何写这个逻辑...... 假设我有一个包含用户和个人资料的应用程序,我想处理一个显示所有看到我(auth用户)个人资料的用户的视图。
我该怎么做?
由于
答案 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
]);
}
至少这应该让你去:)