1. 选择合适的PHP框架及前端框架布局页面(10分)
  2. 首先展示出分类列表,每个分类下只显示3条信息,无需分页 (30分)
  3. 在列表页 点击文章标题进入详细页面,对应的文章点击量+1(30分)
  4. 在详细页面点击上一篇 下一篇显示对应的文章详情(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 实现详情分页的更多相关文章

  1. Laravel 5.2分页--怎么在一个页面实现两个以上的列表分页,互不影响?

    今天就碰到这样的一个问题?想在一个页面里面放两个列表,并且两个列表都可以进行分页. 但是,laravel提供的分页方法很方便,可是两个以上就出问题了,当我点其中一个分页的链接时候,页面上其余的分页跟着 ...

  2. 关于laravel 得手动分页问题

    一般得分页,我们只需要使用paginate方法,就可以简单得搞定.但是遇到数组得组合情况呢?这个时候,就需要我们使用自定义分页了.首先我们看下laravel得分页方法源码: #vendor/larav ...

  3. [ Laravel 5.6 文档 ]laravel数据库操作分页(自定义分页实现和自定义分页样式)

    简介 在其他框架中,分页可能是件非常痛苦的事,Laravel 让这件事变得简单.易于上手.Laravel 的分页器与查询构建器和 Eloquent ORM 集成在一起,并开箱提供方便的.易于使用的.基 ...

  4. laravel手动数组分页

    laravel文档中已经有写如何自己使用分页类去分页了,但没有详细说明. 如果你想手动创建分页实例并且最终得到一个数组类型的结果,可以根据需求来创建 IlluminatePaginationPagin ...

  5. [Laravel] 自带分页实现以及links方法不存在错误

    自带分页实现其实挺简单的,但是我在实现的时候报错!找了很久才找出原因! 废话不说上码 控制器LeeController.php层 <?php namespace App\Http\control ...

  6. laravel带参数分页

    <!---分页--> <div id="pagination-box"> {{ $list->appends(['mobile'=>$mobil ...

  7. laravel paginate动态分页

    1.router Route::get('product', function(){ $products = App\Product::paginate(10); return view('produ ...

  8. Laravel 5.4---后端数据分页和前端显示分页结果

    后端数据(Eloquent 模型)分页 事先建立好Eloquent 模型和Controller 还有 前台的View.可以参考我之前的文章:Laravel建站03--建立前台文章列表和文章详情 在co ...

  9. Laravel分页

    Laravel使用的过程中,有些功能把前端页面的表达"写死了",比如分页的翻页按钮! 当然你会说Laravel的Bootstrap样式也很好看啊,但是实际项目中,翻页按钮常常需要满 ...

随机推荐

  1. JAVA多线程学习八-多个线程之间共享数据的方式

    多个线程访问共享对象和数据的方式 如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做. 如果每个线程执行的代码不同,这 ...

  2. js将HTML中table导出到EXCEL word (只支持IE) 另用php 配合AJAX可以支持所有浏览器

    转载请注明来源:https://www.cnblogs.com/hookjc/ <HTML>     <HEAD>       <title>WEB页面导出为EXC ...

  3. nodejs 文件上传服务端实现

    前段时间在做个人项目的时候,用到了nodejs服务端上传文件,现在回头把这个小结一下,作为记录. 本人上传文件时是基于express的multiparty,当然也可以使用connect-multipa ...

  4. Apache——配置与应用

    Apache配置与应用 1.概述 2.httpd服务支持的虚拟主机类型 3.构建虚拟Web主机 4.构建Web虚拟目录与用户授权限制 5.日志分割 6.AWStats分析系统 1.概述: 虚拟web主 ...

  5. MySQL高级(进阶)SQL语句

    MySQL高级(进阶)SQL语句 目录 MySQL高级(进阶)SQL语句 一.实例准备--制表 1. 表1(商店区域表) 2. 表2(商店销售表) 3. 表3(城市表) 4. 表4(total_sal ...

  6. docker | jenkins 实现自动化CI/CD,后端躺着把运维的钱挣了!(下)

    前言 在上一篇文章中,我们使用docker编写Dockerfile文件,将我们自己的项目构建成镜像,然后发布到Docker Hub中,并且用自己的云服务器拉取Docker Hub上我们自己上传的项目镜 ...

  7. 一次Kafka内存泄露排查经过

    一.现象 服务部署后内存总体呈上升趋势 二.排查过程 通过go tool pprof收集了三天内存数据 2月11号数据: 2月14号数据: 2月15号数据: 可以看到newPartitionProdu ...

  8. Java基于ClassLoder/ InputStream 配合读取配置文件

    阅读java开源框架源码或者自己开发系统时配置文件是一个不能忽略的,在阅读开源代码的过程中尝尝困惑配置文件是如何被读取到内存中的.配置文件本身只是为系统运行提供参数的支持,个人阅读源码时重点不大可能放 ...

  9. 《手把手教你》系列技巧篇(六十九)-java+ selenium自动化测试 - 读取csv文件(详细教程)

    1.简介 在实际测试中,我们不仅需要读取Excle,而且有时候还需要读取CSV类的文件.如何去读取CSV的文件,宏哥今天就讲解和分享一下,希望对你能够有所帮助.前面介绍了如何读取excel文件,本篇介 ...

  10. Java高频面试题70道

    1.作用域public,private,protected,以及不写时的区别? 答:区别如下: 作用域  当前类 同一packag 子孙类 其他package public √ √ √ √ prote ...