当然可以!下面是一个简化的示例,包括前端和后端代码,用于实现带有分页功能的问题列表。这个例子假设你使用的是ThinkPHP框架。
这是控制器中的方法,用来获取问题列表,并实现分页。
public function index()
{
$type = request()->param('type', 'new');
$category_id = request()->param('category_id');
$user_id = request()->param('user_id');
$zone_id = request()->param('zone_id');
$keyword = request()->param('keyword');
$conditions = []; // 此处可以根据需要添加其他条件
$questionList = self::getIndexQuestionList($type, $category_id, $user_id, $zone_id, $keyword, $conditions);
$this->assign('questionList', $questionList);
return $this->fetch(); // 渲染模板
}
// 确保这个方法正确地实现了分页逻辑
public static function getIndexQuestionList($type, $category_id = null, $user_id = null, $zone_id = null, $keyword = null, $conditions = [])
{
$typeArr = [
'new' => 'createtime',
'hot' => 'answers',
'price' => 'createtime',
'unsolved' => 'createtime',
'unanswer' => 'createtime',
'unsettled' => 'rewardtime',
'solved' => 'createtime',
];
$questionModel = self::with(['category', 'user'])->field('reports,peeps,deletetime', true);
$list = $questionModel
->where('status', '<>', 'hidden')
->where('id', '>', '17000000') // 请根据实际情况调整此过滤条件
->where($conditions)
->order(isset($typeArr[$type]) ? $typeArr[$type] : $typeArr['new'], $type == 'unsettled' ? 'asc' : 'desc')
->paginate(10); // 每页显示10条数据
return $list;
}
这是对应的HTML模板代码,用于显示问题列表和分页链接。
<div class="tab-inner" style="background:#fff;padding:15px;">
<div class="question-list">
{foreach $questionList as $question}
<div class="question-item">
<h4>{$question.title}</h4>
<p>{$question.content}</p>
</div>
{/foreach}
<!-- 分页 -->
<div class="pagination">
{if $questionList->hasPages()}
<ul class="pagination-list">
{if !$questionList->onFirstPage()}
<li><a href="{$questionList->previousPageUrl()}">上一页</a></li>
{/if}
{foreach range(1, $questionList->lastPage()) as $page}
<li class="{if $page == $questionList->currentPage()} active {/if}">
<a href="{$questionList->url($page)}">{$page}</a>
</li>
{/foreach}
{if $questionList->hasMorePages()}
<li><a href="{$questionList->nextPageUrl()}">下一页</a></li>
{/if}
</ul>
{/if}
</div>
</div>
</div>
确保你的模板引擎设置正确,能够解析以上包含Smarty标签的代码。这个示例提供了一个基本的分页功能,你可以根据具体需求进行调整和优化。如果你有任何具体的需求或者遇到问题,请随时告知。