laravel 实现详情分页
- 选择合适的PHP框架及前端框架布局页面(10分)
- 首先展示出分类列表,每个分类下只显示3条信息,无需分页 (30分)
- 在列表页 点击文章标题进入详细页面,对应的文章点击量+1(30分)
- 在详细页面点击上一篇 下一篇显示对应的文章详情(30分)
博客参考:
https://blog.csdn.net/g5g5t9/article/details/73690186
路由:
Route::group(['namespace'=>'day13'],function (){
// 首页展示
Route::get('day13/index','ExamController@index')->name('day13.index');
// 详情展示
Route::get('day13/edit','ExamController@edit')->name('day13.edit');
// 上一页
Route::get('day13/up','ExamController@up')->name('day13.up');
// 下一页
Route::get('day13/down','ExamController@down')->name('day13.down');
});
控制器:
<?php namespace App\Http\Controllers\day13; use App\Http\Controllers\Controller;
use App\Models\Day13;
use App\Models\Task\Type;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB; class ExamController extends Controller
{
//列表
public function index(Request $request)
{
$id = $request->get('id');
// 获取分类
$cate = Type::get();
// 每页显示3条
$data = Day13::where('type_id', '=', $id)->limit(3)->get();
return view('day13.index', compact('data', 'cate'));
}
// 详细页面
public function edit(Request $request)
{
$id = $request->get('id');
// 开启事务
DB::beginTransaction();
try {
// 点击加一
DB::table('day13s')->where('id', '=', $id)->increment('clik',1);
// 获取信息
$data=DB::table('day13s')->where('id', '=', $id)->first();
DB::commit();
} catch (\Exception $e) {
DB::rollBack();
}
return view('day13.edit', compact('data'));
}
// 上一篇
public function up(Request $request){
$id=$request->get('id');
$data=Day13::where('id','<',$id)->orderBy('id','desc')->limit(1)->first();
return view('day13.up', compact('data'));
}
// 下一篇
public function down(Request $request){
$id=$request->get('id');
$data=Day13::where('id','>',$id)->orderBy('id','desc')->limit(1)->first();
return view('day13.down', compact('data'));
} }
列表视图:
{{--{{-分类数据渲染---}}
<ul>
@foreach($cate as $k=>$v)
<li onclick="cate({{$v->id}})" id="type">{{$v->type}}</li>
@endforeach
</ul>
<table class="table table-border table-bordered table-hover table-bg table-sort">
<thead>
<tr class="text-c">
<th width="25"><input type="checkbox" name="" value=""></th>
<th width="80">ID</th>
<th width="100">标题</th>
<th width="100">内容</th>
</tr>
</thead>
<tbody>
@foreach($data as $item)
<tr class="text-c">
<td><input type="checkbox" value="{{$item->id}}" name="id[]"></td>
<td>{{$item->id}}</td>
{{-- 点击标题--}}
<td onclick="edit({{$item->id}})">{{$item->title}}</td>
<td>{{$item->content}}</td>
</tr>
@endforeach
</tbody>
</table>
{{--点击分类触发事件--}}
function cate(id) {
window.location.href="http://www.yan.com/day13/index?id="+id;
}
//点击标题进入详情页面
function edit(id) {
window.location.href="http://www.yan.com/day13/edit?id="+id;
}

详情视图:
<div class="mt-20">
<table class="table table-border table-bordered table-hover table-bg table-sort">
<thead>
<tr class="text-c">
<th width="80">ID</th>
<th width="100">标题</th>
<th width="100">内容</th>
</tr>
</thead>
<tbody>
<tr class="text-c">
<td>{{$data->id}}</td>
<td >{{$data->title}}</td>
<td>{{$data->content}}</td>
</tr> </tbody>
</table>
<span onclick="up({{$data->id}})">上一篇</span>
<span onclick="down({{$data->id}})">下一篇</span>
</div>
function up(id) {
window.location.href="http://www.yan.com/day13/up?id="+id;
}
function down(id) {
window.location.href="http://www.yan.com/day13/down?id="+id;
}

laravel 实现详情分页的更多相关文章
- Laravel 5.2分页--怎么在一个页面实现两个以上的列表分页,互不影响?
今天就碰到这样的一个问题?想在一个页面里面放两个列表,并且两个列表都可以进行分页. 但是,laravel提供的分页方法很方便,可是两个以上就出问题了,当我点其中一个分页的链接时候,页面上其余的分页跟着 ...
- 关于laravel 得手动分页问题
一般得分页,我们只需要使用paginate方法,就可以简单得搞定.但是遇到数组得组合情况呢?这个时候,就需要我们使用自定义分页了.首先我们看下laravel得分页方法源码: #vendor/larav ...
- [ Laravel 5.6 文档 ]laravel数据库操作分页(自定义分页实现和自定义分页样式)
简介 在其他框架中,分页可能是件非常痛苦的事,Laravel 让这件事变得简单.易于上手.Laravel 的分页器与查询构建器和 Eloquent ORM 集成在一起,并开箱提供方便的.易于使用的.基 ...
- laravel手动数组分页
laravel文档中已经有写如何自己使用分页类去分页了,但没有详细说明. 如果你想手动创建分页实例并且最终得到一个数组类型的结果,可以根据需求来创建 IlluminatePaginationPagin ...
- [Laravel] 自带分页实现以及links方法不存在错误
自带分页实现其实挺简单的,但是我在实现的时候报错!找了很久才找出原因! 废话不说上码 控制器LeeController.php层 <?php namespace App\Http\control ...
- laravel带参数分页
<!---分页--> <div id="pagination-box"> {{ $list->appends(['mobile'=>$mobil ...
- laravel paginate动态分页
1.router Route::get('product', function(){ $products = App\Product::paginate(10); return view('produ ...
- Laravel 5.4---后端数据分页和前端显示分页结果
后端数据(Eloquent 模型)分页 事先建立好Eloquent 模型和Controller 还有 前台的View.可以参考我之前的文章:Laravel建站03--建立前台文章列表和文章详情 在co ...
- Laravel分页
Laravel使用的过程中,有些功能把前端页面的表达"写死了",比如分页的翻页按钮! 当然你会说Laravel的Bootstrap样式也很好看啊,但是实际项目中,翻页按钮常常需要满 ...
随机推荐
- 安装JDK,以及配置环境变量
卸载JDK 删除Java的安装目录 删除JAVA_HOME 删除path下关于Java的目录 Java-version 安装JDK 使用浏览器搜索JDK,找到下载地址 同意协议 下载电脑对应的版本 双 ...
- Java进制的转换
进制:进制是一种记数方式 ,可以用有限的数字符号代表所有的数值.由特定的数值组成. 整型的表现形式 十进制: 都是以0-9这九个数字组成,不能以0开头. 二进制: 由0和1两个数字组成. 八进制: 由 ...
- JScrollPane 自动跟进 自动到滚动到最底部
感谢大佬:https://blog.csdn.net/csdn_lqr/article/details/51068423 注:以下方法为网上摘抄 1 . JTable( 放在JScrollPane中 ...
- Squid代理服务器应用
Squid代理服务器应用 目录 Squid代理服务器应用 一.Squid的脚本概念 1. Squid的作用 2. Web代理的工作机制 3. 代理服务器的概念 4. 代理服务器的作用 5. 代理的基本 ...
- 【linux运维】Linux服务器玩转vsftpd安装与配置
Linux服务器搭建ftp详细教程. 前言 本文,主要以vsftp软件为主进行讲解,版本为3.0.2.以介绍设置虚拟用户.权限验证为主,linux权限知识默认大家都有所了解.vsftpd设置有两种模式 ...
- 虫师Selenium2+Python_2、测试环境搭建
windows环境配置: 步骤: 安装python 官网下载http://www.seleniumhq.org/ https://www.python.org/downloads/windows/ 3 ...
- python使用泛型
所谓的泛型, 就是将数据类型作为参数进行传递, 即在我们用的时候确定数据类型, 这是一种在面向对象语言中经常使用的特性 一般类使用 以SQLAlchemy举例 比如: 我们统一写个将数据保存到数据库的 ...
- .NET 云原生架构师训练营(权限系统 代码实现 EntityAccess)--学习笔记
目录 开发任务 代码实现 开发任务 DotNetNB.Security.Core:定义 core,models,Istore:实现 default memory store DotNetNB.Secu ...
- Solution -「ExaWizards 2019 C」Snuke and Wizards
\(\mathcal{Description}\) Link. 给定一个长度为 \(n\) 的字符串 \(s\),每个字符上初始有一张卡片.\(q\) 次操作,每次指定 \(s\) 中字符为 ...
- suse 12 部署chrony时间同步服务器
文章目录 1.ntp和chrony的区别 1.1.关于chrony 1.2.chronyd的优势 2.环境介绍 3.部署chrony 4.配置chrony 4.1.配置文件解析 4.2.查看chron ...