亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

Laravel 5框架學習之日期,Mutator 和 Scope

2024-05-04 23:34:03
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了Laravel 5框架學習之日期,Mutator 和 Scope的相關資料,需要的朋友可以參考下

在我們前面的解決方案中,直接給 published_at 賦值為當前日期實際上是一個臨時解決方案,我們需要設定發布日期,可能是未來2天后才發布,讓我們修改這個問題。

首先修改控制器:

 

 
  1. public function store() { 
  2. Article::create(Request::all()); 
  3. return redirect('articles'); 

然后修改視圖,添加發布日期字段

  1. @extends('layout'
  2.  
  3. @section('content'
  4. <h1>Write a New Article</h1> 
  5.  
  6. <hr/> 
  7.  
  8. {{--使用我們添加的 illuminate/html 開源庫--}} 
  9. {!! Form::open(['url' => 'articles']) !!} 
  10. <div class="form-group"
  11. {!! Form::label('title''Title:') !!} 
  12. {!! Form::text('title', null, ['class' => 'form-control']) !!} 
  13. </div> 
  14.  
  15. <div class="form-group"
  16. {!! Form::label('body''Body:') !!} 
  17. {!! Form::textarea('body', null, ['class' => 'form-control']) !!} 
  18. </div> 
  19.  
  20. <div class="form-group"
  21. {!! Form::label('published_at''Publish On:') !!} 
  22. {!! Form::input('date''published_at'date('Y-m-d'), ['class' => 'form-control']) !!} 
  23. </div> 
  24.  
  25. <div class="form-group"
  26. {!! Form::submit('Add Article', ['class' => 'btn btn-primary form-control']) !!} 
  27. </div> 
  28.  
  29. {!! Form::close() !!} 
  30.  
  31. @stop 


ok,讓我們添加一個新的文章,并且把日期設置為未來的某一天,但是文章直接顯示在最開始了,這不是我們需要的。我們需要到了那天才顯示出來。當然,我們需要更具體一點,比如在早上 8:00 顯示,而不是0點顯示。我們可以添加一個mutator(也就是其他語言的屬性設置器),修改我們的model

  1. <?php namespace App; 
  2.  
  3. use DateTime; 
  4. use Illuminate/Database/Eloquent/Model; 
  5.  
  6. class Article extends Model { 
  7.  
  8. protected $fillable = [ 
  9. 'title'
  10. 'body'
  11. 'published_at' 
  12. ]; 
  13.  
  14. //屬性設置其要遵守格式約定 
  15. // set屬性Attribute 
  16. public function setPublishedAtAttribute($date) { 
  17. $this->attributes['published_at'] = Carbon::createFromFormat('Y-m-d'$date)->hour(8)->minute(0)->second(0); 
  18.  



添加一個新的紀錄,查看數據庫,我們已經將時間設置正確了,但是我們的首頁仍然顯示未來的才發布的文章,我們修改它。

  1. public function index() { 
  2. //$articles = Article::latest('published_at')->get(); 
  3. $articles = Article::latest('published_at')->where('published_at''<=', Carbon::now())->get(); 
  4.  
  5. return view('articles.index', compact('articles')); 


上面的解決方法可以工作,但是查詢語句太長了。我們可以使用 Laravel 提供的 scope ,來簡化我們的工作。所謂scope可以理解為是查詢過程中使用的中間查詢結果,比如我們定義一個published scope,他可以返回所有當前已經發布的文章,讓我們修改模型。

  1. //設置scope,遵守命名規則 
  2. public function scopePublished($query) { 
  3. $query->where('published_at''<=', Carbon::now()); 


修改控制器使用 scope

  1. public function index() { 
  2. //$articles = Article::latest('published_at')->get(); 
  3. //$articles = Article::latest('published_at')->where('published_at', '<=', Carbon::now())->get(); 
  4. $articles = Article::latest('published_at')->published()->get(); 
  5.  
  6. return view('articles.index', compact('articles')); 


結果相同,但在復雜的查詢中我們可以使用scope來分解我們的任務,或者復用查詢。

我們來增加一個新的查詢,查詢所有還沒有發布的文章。在模型中添加scope

  1. public function scopeUnpublished($query) { 
  2. $query->where('published_at''>', Carbon::now()); 


修改控制器使用unpulished

 

 
  1. public function index() { 
  2. //$articles = Article::latest('published_at')->get(); 
  3. //$articles = Article::latest('published_at')->where('published_at', '<=', Carbon::now())->get(); 
  4. //$articles = Article::latest('published_at')->published()->get(); 
  5. $articles = Article::latest('published_at')->Unpublished()->get(); 
  6.  
  7. return view('articles.index', compact('articles')); 

one more thing! 如果我們在 show 方法中使用 dd($article->published_at) 查看的結果,與 dd($article->created_at); 結果不一樣,前者我們使我們自己的字段,后者是在 CreateArticleTable 中通過 $table->timestamp() 自動生成的。自動生成的字段顯示出來是 Carbon類型,而我們的是字符串。使用 Crabon類型有很多的好處,例如你可以輸出 dd($article->created_at->diffForHumans()); ,這種 1 hour ago 結果,但我們的published_at 不可以。怎么修改?修改模型,告訴laravel,published_at 是日期即可。

 

 
  1. protected $dates = ['published_at']; 
 

 

 

再次使用 dd($article->published_at->diffForHumans()); ,結果顯示為 3 days from now,Bingo!

以上所述就是本文的全部內容了,希望能夠給大家學習Laravel5框架有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人免费在线视频网站| 亚洲成av人影院在线观看| 国产精品偷伦免费视频观看的| 国产精选久久久久久| 久久97久久97精品免视看| 亚洲综合一区二区不卡| 91精品视频免费观看| 亚洲午夜性刺激影院| 欧美一二三视频| 国产精品678| 国产精欧美一区二区三区| 91国自产精品中文字幕亚洲| 久久中文字幕在线| 亚洲国产欧美一区二区丝袜黑人| 97超级碰碰碰| 欧美一级成年大片在线观看| 欧美性生交大片免费| 国内外成人免费激情在线视频网站| 日本亚洲欧美成人| 国产成人av网址| 在线日韩av观看| 疯狂做受xxxx欧美肥白少妇| 日韩精品黄色网| 国产精品中文字幕在线| 日韩中文字幕免费视频| 欧美激情视频一区二区| 日韩在线中文字| 午夜精品久久久久久久久久久久| 欧美放荡办公室videos4k| 中文字幕亚洲二区| 中国日韩欧美久久久久久久久| 亚洲精品中文字| 日韩欧美中文在线| 国产精品黄色影片导航在线观看| 亚洲国产精品悠悠久久琪琪| 欧美激情视频网站| 欧美激情欧美狂野欧美精品| 国产va免费精品高清在线| 亚洲一区二区三区在线视频| 久久久久久91香蕉国产| 欧美性在线观看| 97视频人免费观看| 免费91麻豆精品国产自产在线观看| 国产一区二区三区在线观看视频| 一区二区福利视频| 成人午夜黄色影院| 亚洲色图校园春色| 欧美一区二粉嫩精品国产一线天| 91色视频在线观看| 国产日韩欧美夫妻视频在线观看| 亚洲欧美国产日韩中文字幕| 一区二区亚洲欧洲国产日韩| 亚洲自拍偷拍第一页| 亚洲精品一区二区久| 亚洲精品网址在线观看| 国产精品久久久久久久久免费| 疯狂蹂躏欧美一区二区精品| xxxxx成人.com| 国产精品入口夜色视频大尺度| 亚洲精品日产aⅴ| 俺也去精品视频在线观看| 欧美性xxxxxxx| 日韩精品极品在线观看| 欧美日韩黄色大片| 亚洲xxxx做受欧美| 欧美日韩成人网| 日韩美女视频免费看| 午夜精品一区二区三区在线视| 亚洲女人被黑人巨大进入| 亚洲美女www午夜| 国产成人精品一区二区| 久久躁日日躁aaaaxxxx| 亚洲天堂网在线观看| 97涩涩爰在线观看亚洲| 欧美在线视频在线播放完整版免费观看| 91丨九色丨国产在线| 美女少妇精品视频| 国产91网红主播在线观看| 久久亚洲精品国产亚洲老地址| 一本色道久久88综合日韩精品| 欧美激情欧美激情| 久久视频在线视频| 亚洲va欧美va国产综合久久| 亚洲国产精品va在看黑人| 91福利视频在线观看| 亚洲综合日韩中文字幕v在线| 欧美区在线播放| 欧美精品国产精品日韩精品| 91在线免费观看网站| 亚洲偷熟乱区亚洲香蕉av| 69av成年福利视频| 久久99亚洲精品| 国产精品都在这里| 大胆人体色综合| 欧美中文字幕在线| 久久久久久久久久久久av| 亚洲成成品网站| 国产美女久久精品香蕉69| 中文字幕日本欧美| 日产精品久久久一区二区福利| 97激碰免费视频| 日韩美女免费线视频| 国产精品久久久精品| 亚洲а∨天堂久久精品9966| 久久久在线视频| 91精品在线国产| 一本色道久久88亚洲综合88| 亚洲日本成人网| 国产美女高潮久久白浆| 懂色av影视一区二区三区| 日韩美女免费视频| 亚洲成av人乱码色午夜| 欧美午夜精品伦理| 久久99精品视频一区97| 国产成人精品在线播放| 欧美成人在线免费| 中文字幕在线国产精品| 欧美三级欧美成人高清www| 亚洲日本中文字幕| 91综合免费在线| 久久久av亚洲男天堂| 日韩中文字幕av| 亚洲国语精品自产拍在线观看| 久久久久久久久久国产| 国产精品www色诱视频| 久久久久久久久爱| 久久91精品国产91久久久| 中文字幕亚洲欧美| 日韩美女激情视频| 欧美日韩国产综合新一区| 日韩精品免费在线视频观看| 亚洲国产成人爱av在线播放| 亚洲欧美综合精品久久成人| 亚洲国产精品高清久久久| 一个色综合导航| 成年人精品视频| 成人免费视频a| 亚洲免费视频在线观看| 亚洲精品成人网| 久久免费国产精品1| 91精品国产色综合久久不卡98口| 日韩av三级在线观看| 78m国产成人精品视频| 国产在线播放91| 成人亚洲综合色就1024| 裸体女人亚洲精品一区| 日韩电影第一页| 精品福利视频导航| 欧美亚洲视频一区二区| 欧美一区二区三区图| 欧美日韩成人在线视频| 国产精品一区二区3区| 亚洲免费电影在线观看| 国产成+人+综合+亚洲欧洲| 亚洲成人1234| 国产精品视频不卡| 日韩大陆欧美高清视频区| 欧美日韩一区二区在线播放| 668精品在线视频| 日av在线播放中文不卡| 97精品视频在线播放| 欧美激情乱人伦| 久久精品国产亚洲| 国产精品网红直播|