网络编程

当前位置:永利402游戏网站-永利402com官方网站 > 网络编程 > Laravel 中获取上一篇和下一篇数据_php实例_脚本之

Laravel 中获取上一篇和下一篇数据_php实例_脚本之

来源:http://www.xtcsyb.com 作者:永利402游戏网站-永利402com官方网站 时间:2019-11-25 14:44

率先作品的源点来与SF下面的一个主题材料:

Page 和商酌将使用 Eloquent 提供的“风流潇洒对多关系”。最后,大家将收获贰个私家博客系统的雏形,并布署三个大作业,供我们实战练兵。

Laravel的Eloquent ORM 怎么获取当前记下的下一条

1. 初识 Eloquent

然后,那时候在答案里面大约写了黄金年代晃应用方案。不过由于这一个得到下一条和拿到上一条的笔录其实在日常的付出当中照旧会平时遇到,最管见所及的风貌只怕就是获取风度翩翩篇作品的上生龙活虎篇作品和下风姿浪漫篇文章了。其实那么些在Laravel的Eloquent中落到实处依然挺轻便的,可是出于Laravel并未直接提须求大家相应的形式,大家得利用叁个微细的技巧:

Laravel Eloquent ORM 是 Laravel 中国和欧洲常重大的一些,也是 Laravel 能那样流行的来由之意气风发。粤语文书档案在:

protected function getPrevArticleId { return Article::where->max; }

$id正是近期文章的id,大家经过max()来得到比前段时间id小的最大值,相当于日前id的前生机勃勃篇小说的id。

在近些日子的课程中早已建设构造好的 learnlaravel5/app/Page.php 正是二个 Eloquent Model 类:

protected function getNextArticleId { return Article::where->min; }
若想进一步了解 Eloquent,推荐阅读系列文章:深入理解 Laravel Eloquent2. 创建 Comment 模型首先我们要新建一张表来存储 Comment,命令行运行:复制代码 代码如下:php artisan make:model Comment成功以后,修改 migration 文件 learnlaravel5/database/migrations/***_create_comments_table.php 的相应位置为:Schema::create('comments', function{ $table->increments; $table->string; $table->string; $table->string->nullable(); $table->text->nullable(); $table->integer; $table->timestamps;

大致能够说是:综上说述。那几个拿到下风华正茂篇文章的id其实正是贰个反倒的历程,明白万岁。

复制代码 代码如下:php artisan migrate

假若大家获得上生机勃勃篇和下风流倜傥篇的文章id之后,咱们就足以随性所欲了,比方:

去数据Curry看到,comments 表已经躺在那时啦。

复制代码 代码如下:$next_article = Article::find($this->getNextArticleId;

3. 独当一面“意气风发对多涉及”

那假如是对此二个篇章的管住的话,大家其实能够如此做:

修改 Page 模型:

给articles表中追加三个published_at的字段,这里能够将published_at字段设置为一个Carbon对象,然后大家在前面一个人展馆示的时候就足以依靠published_at来判读是否将艺术体现出来。

hasMany('AppComment', 'page_id', 'id'); }}
 public function scopePublished { $query->where('published_at','<=',Carbon::now; }

搞定啦~ Eloquent 中模型间关系正是那般轻巧。

//以上办法位于Article中,下边包车型大巴询问本身放在了ArticleController中

模型间事关普通话文档:

$articles = Article::latest->published()...

4. 前台提交作用

@if上一篇 {{ $prev_article->title }}@endif

修改 Comment 模型:

@if($next_article && $next_article->published_at < CarbonCarbon::now下一篇 {{ $next_article->title }}@endif

复制代码 代码如下:Route::post('comment/store', 'CommentsController@store');运行以下命令创建 CommentsController 控制器:复制代码 代码如下:php artisan make:controller CommentsController修改 CommentsController:withErrors; } }}

拍卖作品的前生龙活虎篇和后生龙活虎篇的消除方案已做到。

校珍视图 learnlaravel5/resources/views/pages/show.blade.php:

以上所述正是本文的全体内容了,希望大家能够赏识。

@extends@section  ⬅️返回首页  {{ $page->title }}   {{ $page->updated_at }}    {{ $page->body }}    @if   Whoops! There were some problems with your input.

  @foreach  as $error) {{ $error }} @endforeach   @endif  function reply { var nickname = a.parentNode.parentNode.firstChild.nextSibling.getAttribute; var textArea = document.getElementById; textArea.innerHTML = '@'+nickname+' ';}  @foreach ($page->hasManyComments as $comment)   @if   https://www.jb51.net/article/{{ $comment->nickname }}  @else https://www.jb51.net/article/{{ $comment->nickname }} @endif https://www.jb51.net/article/{{ $comment->created_at }}    https://www.jb51.net/article/{{ $comment->content }}    回复   @endforeach  @endsection

5. 后台管理效用

校订根底视图 learnlaravel5/resources/views/app.blade.php 为:

 Laravel        Toggle Navigation     Learn Laravel 5    后台首页   管理评论   @if  Login Register @else  {{ Auth::user()->name }}   Logout   @endif     @yield   

Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => 'auth'], function(){ Route::get('/', 'AdminHomeComtroller@index'); Route::resource('pages', 'PagesController'); Route::resource('comments', 'CommentsController');});

创建 AdminCommentsController :

复制代码 代码如下:php artisan make:controller Admin/CommentsController

Admin/CommentsController 要有 查看全数、查看单个、POST改过、删除多少个接口:

withComments; } public function edit { return view('admin.comments.edit')->withComment; } public function update(Request $request, $id) { $this->validate($request, [ 'nickname' => 'required', 'content' => 'required', ]); if (Comment::where->update(Input::except(['_method', '_token']))) { return Redirect::to; } else { return Redirect::back->withErrors; } } public function destroy { $comment = Comment::find; $comment->delete(); return Redirect::to; }}

learnlaravel5/resources/views

@extends@section    管理评论    Content

User

Page

编辑

删除

@foreach ($comments as $comment)

$comment->content }}

@if

$comment->nickname }}

@else

$comment->nickname }}

@endif $comment->email }}

{{ AppPage::find->title }}%20%7D%7D)

编辑%20%7D%7D)

@endforeach

@endsection

learnlaravel5/resources/views

@extends@section    编辑评论  @if   Whoops! There were some problems with your input.

  @foreach  as $error) {{ $error }} @endforeach   @endif    @endsection

后台管理功效达成,查看效果:

6. 大作业借助于 Page 的评头论足效率已经整整实现,个人博客系统雏形诞生。在本体系教程的最终,布置二个大作业:构建出 Article 的前后台,并且增加 Article 与 Comment 的豆蔻年华对多关系,参与斟酌和研讨管理功用。在做那个大作业的经过中,你将会频仍地回头去看前边的学科,反复地翻阅中文文书档案,会留心翻阅笔者的代码,等你成功大作业的时候,Laravel 5 就真的入门啦~~

如上所述正是本文的全体内容了,希望大家能够喜欢。

本文由永利402游戏网站-永利402com官方网站发布于网络编程,转载请注明出处:Laravel 中获取上一篇和下一篇数据_php实例_脚本之

关键词: