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样式也很好看啊,但是实际项目中,翻页按钮常常需要满 ...
随机推荐
- SQL 中进行递归
很多时候,我们做Tree的时候会用到递归.但是一般都是从数据库中拿到数据然后再程序中进行递归.昨天一个巧合,一位同事给我看了数据库中的递归,乍一看还不太明白. 表结构是这样的 CREATE TABLE ...
- LockSupport、wait()、notify()
LockSupport 名词解释 LockSupport是一个在JUC包里的线程阻塞工具类,所有的方法都是静态方法,主要用途是让线程在任意位置阻塞,广泛应用在AQS和各种JUC的锁中. 代码 publ ...
- JAVA多线程学习十六 - 同步集合类的应用
1.引言 在多线程的环境中,如果想要使用容器类,就需要注意所使用的容器类是否是线程安全的.在最早开始,人们一般都在使用同步容器(Vector,HashTable),其基本的原理,就是针对容器的每一个操 ...
- Sublime Text 官方网站 http://www.sublimetext.com
Sublime Text 官方网站 http://www.sublimetext.com
- Redis-46面试题
1.什么是 Redis?简述它的优缺点? Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据 ...
- IDEA中Git的一般使用场景
感谢大佬:https://www.cnblogs.com/javabg/p/8567790.html 工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有两个人,组长小张,组员小 ...
- Html 项目使用自定义字体文件问题
感谢大佬:https://zhidao.baidu.com/question/652711582735059245.html 1.首先在项目过程中新建文件夹fonts将准备好的ttf字体文件复制该文件 ...
- linux_15
实现基于MYSQL验证的vsftpd虚拟用户访问 配置samba共享,实现/www目录共享 使用rsync+inotify实现/www目录实时同步 LVS调度算法总结 LVS的跨网络DR实现
- Python语法进阶(1)- 进程与线程编程
1.进程与多进程 1.1.什么是进程 进程就是程序执行的载体 什么叫多任务? 多任务就是操作系统可以同时运行多个任务.比如你一边在用浏览器学习,还一边在听音乐,,这就是多任务,至少同时有3个任务正在运 ...
- 正则表达式以及re模块的使用
内容概要 正则表达式简介 字符组 特殊符号 量词 贪婪匹配与非贪婪匹配 取消转义 正则表达式简介 '''正则表达式是一门语言,如果想在python中使用,需要导入re模块''' # 什么是正则表达式? ...