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样式也很好看啊,但是实际项目中,翻页按钮常常需要满 ...
随机推荐
- asp.net core 中的各种路径
1.获取完整网址URL 方法一:先引用"using Microsoft.AspNetCore.Http.Extensions;",然后直接用"Request.GetDis ...
- NSString为何要用copy修饰,而不是strong?
NSString本身是无所谓的,但是如果一个 NSString 指针指向了一个 NSMutableString的内存空间的话,如果使用 strong 修饰的话,如果你在别处修改这个值的话,那么原来的值 ...
- 大前端工程化之写一个简单的webpack插件
今天写一个简单的webpack插件,来学习一下webpack插件 webpack插件机制可以使开发者在webpack构建过程中加入自己的行为,来针对自己项目中的一些需求做一些定制化 首先我们得知道一个 ...
- 如何综合运用对称加密技术、非对称加密技术(公钥密码体制)和Hash函数 保证信息的保密性、完整性、可用性和不可否认性?
一.几个问题 在提出问题之前,先创建一个使用场景,发送方(甲方)要给接收方(乙方)发送投标书.大家知道,投标书都包括发送方的标的,这个标的是不能被竞标者知晓,更不能被竞标者修改的.在传输的投标书时,提 ...
- 阅读mybatis的源码的思路
■ 阅读源码mybatis操作数据库的过程: /* 测试查询 */ @Test public void testGet() throws IOException { // 1.从classpath路径 ...
- HTML笔记整理--上节
一.认识WEB 「网页」主要是由文字.图像和超链接等元素构成,当然除了这些元素,网页中还可以包括音频.视频以及Flash等. 「浏览器」是网页显示.运行的平台. 「浏览器内核」(排版引擎.解释引擎.渲 ...
- MyBatis动态SQL和缓存
1. 什么是动态SQL 静态SQL:静态SQL语句在程序运行前SQL语句必须是确定的,SQL语句中涉及的表的字段名必须是存在的,静态SQL的编译是在程序运行前的. 动态SQL:动态SQL语句是在程序运 ...
- Flask中本地栈的使用
4种上下文变量 承接上一篇内容.当一个请求到来时,除了request被封装成全局变量之外,还有三个变量也是同样被封装成全局变量,那就是current_app.g.session.上面4个变量之所以能够 ...
- Ultra Math Preview : VSCode上的LaTeX公式实时预览插件
一直觉着 VS Code 的 TeX 公式(包括 markdown 和 LaTeX)只能在定界符上hover预览,或者开一个预览面板看,没有那种像 Typora 一样紧跟在公式后面的预览面板,多少有些 ...
- My97DatePicker接口
复制于http://blog.csdn.net/lidew521/article/details/8531685 一. 简介 1. 简介 目前的版本是:4.2 正式版 发布于2008-12-03 2. ...