php实现保存浏览历史的功能,thinkphp 实现浏览历史功能
时间: 2023-11-29 20:04:26 浏览: 37
要实现保存浏览历史的功能,可以在用户浏览网页时,将浏览记录保存在数据库中。以下是使用 ThinkPHP 框架实现浏览历史功能的方法:
1. 创建数据库表
在数据库中创建一个表来保存用户的浏览历史记录。该表可以包含以下字段:
- id:主键,自增长;
- user_id:用户 ID;
- url:浏览的页面 URL;
- title:浏览的页面标题;
- create_time:浏览时间。
2. 创建模型
在 ThinkPHP 框架中,需要创建一个模型来操作数据库表。可以使用命令行工具生成模型文件,也可以手动创建。
手动创建模型文件:
在 `application` 目录下创建一个 `model` 目录,在该目录下创建一个 `History.php` 文件,内容如下:
```php
<?php
namespace app\model;
use think\Model;
class History extends Model
{
// 设置表名
protected $table = 'history';
}
```
3. 创建控制器
在 ThinkPHP 框架中,控制器负责接收用户请求,调用模型和视图等其他组件来完成用户请求。可以使用命令行工具生成控制器文件,也可以手动创建。
手动创建控制器文件:
在 `application` 目录下创建一个 `controller` 目录,在该目录下创建一个 `History.php` 文件,内容如下:
```php
<?php
namespace app\controller;
use app\model\History as HistoryModel;
use think\facade\Session;
class History
{
public function index()
{
// 获取用户 ID
$userId = Session::get('user_id');
// 获取浏览记录
$historyList = HistoryModel::where('user_id', $userId)
->order('create_time', 'desc')
->limit(10)
->select();
// 渲染模板
return view('history/index', [
'historyList' => $historyList,
]);
}
public function add($url, $title)
{
// 获取用户 ID
$userId = Session::get('user_id');
// 创建浏览记录
$history = new HistoryModel;
$history->user_id = $userId;
$history->url = $url;
$history->title = $title;
$history->create_time = time();
$history->save();
}
}
```
4. 在路由中注册控制器方法
在 `route` 目录下的 `route.php` 文件中注册控制器方法,例如:
```php
// 浏览历史
Route::get('history', 'History/index');
// 添加浏览记录
Route::get('history/add', 'History/add');
```
5. 在页面中调用添加浏览记录方法
在需要添加浏览记录的页面中,可以通过 JavaScript 调用添加浏览记录的方法,例如:
```javascript
// 获取当前页面 URL 和标题
var url = window.location.href;
var title = document.title;
// 调用添加浏览记录的方法
$.get('/history/add', {url: url, title: title});
```
这样,当用户浏览网页时,页面会自动调用添加浏览记录的方法,将浏览记录保存在数据库中。用户可以在浏览历史页面中查看自己的浏览记录。