Laravel 5框架学习之日期,Mutator 和 Scope,laravelmutator_PHP教程
Laravel 5框架学习之日期,Mutator 和 Scope,laravelmutator
在我们前面的解决方案中,直接给 published_at 赋值为当前日期实际上是一个临时解决方案,我们需要设定发布日期,可能是未来2天后才发布,让我们修改这个问题。
首先修改控制器:
public function store() { Article::create(Request::all()); return redirect('articles'); }
然后修改视图,添加发布日期字段
@extends('layout') @section('content') <h1 id="Write-a-New-Article">Write a New Article</h1> <hr/> {{--使用我们添加的 illuminate\html 开源库--}} {!! Form::open(['url' => 'articles']) !!} <div class="form-group"> {!! Form::label('title', 'Title:') !!} {!! Form::text('title', null, ['class' => 'form-control']) !!} </div> <div class="form-group"> {!! Form::label('body', 'Body:') !!} {!! Form::textarea('body', null, ['class' => 'form-control']) !!} </div> <div class="form-group"> {!! Form::label('published_at', 'Publish On:') !!} {!! Form::input('date', 'published_at', date('Y-m-d'), ['class' => 'form-control']) !!} </div> <div class="form-group"> {!! Form::submit('Add Article', ['class' => 'btn btn-primary form-control']) !!} </div> {!! Form::close() !!} @stop
ok,让我们添加一个新的文章,并且把日期设置为未来的某一天,但是文章直接显示在最开始了,这不是我们需要的。我们需要到了那天才显示出来。当然,我们需要更具体一点,比如在早上 8:00 显示,而不是0点显示。我们可以添加一个mutator(也就是其他语言的属性设置器),修改我们的model
<?php namespace App; use DateTime; use Illuminate\Database\Eloquent\Model; class Article extends Model { protected $fillable = [ 'title', 'body', 'published_at' ]; //属性设置其要遵守格式约定 // set属性Attribute public function setPublishedAtAttribute($date) { $this->attributes['published_at'] = Carbon::createFromFormat('Y-m-d', $date)->hour(8)->minute(0)->second(0); } }
添加一个新的纪录,查看数据库,我们已经将时间设置正确了,但是我们的首页仍然显示未来的才发布的文章,我们修改它。
public function index() { //$articles = Article::latest('published_at')->get(); $articles = Article::latest('published_at')->where('published_at', '<=', Carbon::now())->get(); return view('articles.index', compact('articles')); }
上面的解决方法可以工作,但是查询语句太长了。我们可以使用 Laravel 提供的 scope ,来简化我们的工作。所谓scope可以理解为是查询过程中使用的中间查询结果,比如我们定义一个published scope,他可以返回所有当前已经发布的文章,让我们修改模型。
//设置scope,遵守命名规则 public function scopePublished($query) { $query->where('published_at', '<=', Carbon::now()); }
修改控制器使用 scope
public function index() { //$articles = Article::latest('published_at')->get(); //$articles = Article::latest('published_at')->where('published_at', '<=', Carbon::now())->get(); $articles = Article::latest('published_at')->published()->get(); return view('articles.index', compact('articles')); }
结果相同,但在复杂的查询中我们可以使用scope来分解我们的任务,或者复用查询。
我们来增加一个新的查询,查询所有还没有发布的文章。在模型中添加scope
public function scopeUnpublished($query) { $query->where('published_at', '>', Carbon::now()); }
修改控制器使用unpulished
public function index() { //$articles = Article::latest('published_at')->get(); //$articles = Article::latest('published_at')->where('published_at', '<=', Carbon::now())->get(); //$articles = Article::latest('published_at')->published()->get(); $articles = Article::latest('published_at')->Unpublished()->get(); 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 是日期即可。
protected $dates = ['published_at'];
再次使用 dd($article->published_at->diffForHumans()); ,结果显示为 3 days from now,Bingo!
以上所述就是本文的全部内容了,希望能够给大家学习Laravel5框架有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

1. Ouvrez d'abord le navigateur Web mobile, recherchez la version Web de Weibo et cliquez sur le bouton avatar dans le coin supérieur gauche après avoir entré. 2. Cliquez ensuite sur Paramètres dans le coin supérieur droit. 3. Cliquez sur l'option de changement de version dans les paramètres. 4. Sélectionnez ensuite l'option de version couleur dans le commutateur de version. 5. Cliquez sur Rechercher pour accéder à la page de recherche. 6. Après avoir saisi les mots-clés, cliquez sur Rechercher des personnes. 7. Lorsque l'interface de fin de recherche apparaît, cliquez sur Filtrer. 8. Enfin, entrez la date spécifique dans la colonne heure de sortie et cliquez sur Filtrer.

1. Laissez-moi d'abord parler de la méthode que j'ai utilisée au début, peut-être que tout le monde l'utilise aussi. Tout d’abord, ouvrez [Affichage]——]Modèle de remarques[. 2. Un endroit où vous pouvez réellement voir la date après l'avoir ouverte. 3. Sélectionnez-le d'abord et supprimez-le. 4. Après la suppression, cliquez sur [Fermer la vue principale]. 5. Ouvrez à nouveau l'aperçu avant impression et constatez que la date est toujours là. 6. En fait, cette date n’a pas été supprimée ici. Cela devrait être dans le [Document principal]. Regardez l'image ci-dessous. 7. Supprimez la date après l'avoir trouvée. 8. Désormais, lorsque vous ouvrez l'aperçu et y jetez un œil, la date n'est plus là. Remarque : En fait, cette méthode est également très facile à retenir, car les documents imprimés sont des documents, vous devez donc rechercher le [Handout Master].

Par défaut, la barre supérieure d'Ubuntu 17.10 n'a que l'heure actuelle et aucune date. Que dois-je faire si je souhaite afficher la date ? Jetons un coup d'œil au didacticiel détaillé ci-dessous. 1. Ouvrez le terminal dans le lanceur ou appuyez sur [Ctrl+Alt+T] 2. Entrez dans le terminal : sudoaptinstallgnome-tweak-tool 3. Une fois l'installation terminée, ouvrez l'outil de réglage 4. Cliquez sur TopBar 5. La date est la date et les secondes sont le nombre de secondes 6. Après l'avoir configuré, la date et les secondes seront affichées sur l'heure dans la barre supérieure.

Comment utiliser les modules d'heure et de date en Python Introduction : En programmation, gérer l'heure et les dates est des tâches très courantes. Python fournit de puissants modules d'heure et de date, rendant les opérations d'heure et de date plus faciles et plus pratiques. Cet article présentera les modules d'heure et de date en Python et fournira des exemples de code spécifiques pour aider les lecteurs à mieux les comprendre et les appliquer. 1. Présentation du module heure et date Le module heure et date intégré de Python est le module datetime Nous devons d'abord présenter ce module.

Le logiciel Excel possède des fonctions de traitement de données très puissantes. Nous utilisons souvent un logiciel Excel pour traiter diverses données. Parfois, lorsque nous saisissons une date dans une cellule Excel, la date dans Excel se transforme en signe dièse. Jetons un coup d'œil à la solution ci-dessous. 1. Tout d'abord, nous plaçons la souris sur la ligne de largeur de colonne entre les colonnes AB, double-cliquons et ajustons la largeur de colonne, comme indiqué dans la figure ci-dessous. 2. Une fois la colonne élargie, nous constatons que des nombres sont affichés dans les cellules au lieu de dates. Nous devons ensuite vérifier le format des cellules, comme le montre la figure ci-dessous. 3. Cliquez sur l'option « Numéro » dans l'onglet « Accueil », puis cliquez sur « Autre format de nombre » dans le menu déroulant, comme indiqué dans la figure ci-dessous.

Lors de l'analyse des données en Python, il est également nécessaire de regrouper et de résumer par date, par exemple, pour trouver le modèle périodique du volume des ventes. Ensuite, avant d'utiliser Python pour les statistiques de données, vous devez ajouter une étape supplémentaire : obtenir le jour de la semaine à partir de la date spécifiée. Par exemple, le 22 février 2022 est également le 22e mardi du premier mois lunaire, ce qui signifie que de nombreuses personnes s'inscrivent au mariage ce jour-là. Cet article prend le 22/02/2022 comme exemple pour démontrer 6 façons d'obtenir le « jour de la semaine » pour une date spécifiée en Python ! Le module datetime weekday() est une bibliothèque intégrée à Python qui ne nécessite pas d'installation de pip. En plus d'afficher la date et l'heure, il peut également effectuer des calculs et un formatage de date et d'heure.

Filtrage des données PHP : traitement des données de date et d'heure Présentation : lors du développement d'applications Web, il est souvent nécessaire de traiter les données de date et d'heure saisies par l'utilisateur. Étant donné que les entrées des utilisateurs peuvent contenir divers formats et erreurs, un filtrage et une validation efficaces des données sont nécessaires pour garantir l'exactitude et la sécurité des données. Cet article explique comment utiliser PHP pour gérer la saisie de la date et de l'heure et fournit des exemples de code correspondants. Principes de filtrage et de validation : Avant de traiter les entrées de date et d'heure, vous devez d'abord déterminer les principes de filtrage et de validation correspondants. En voici quelques-uns courants

La génération de données aléatoires est très importante dans le domaine de la science des données. Lors de la création de prévisions de réseaux neuronaux, de données boursières, etc., la date est généralement utilisée comme l'un des paramètres. Nous devrons peut-être générer des nombres aléatoires entre deux dates à des fins d'analyse statistique. Cet article montrera comment générer k dates aléatoires entre deux dates données à l'aide des modules random et datetime. Datetime est la bibliothèque intégrée de Python pour la gestion du temps. D'un autre côté, le module aléatoire aide à générer des nombres aléatoires. On peut donc combiner les modules random et datetime pour générer une date aléatoire entre deux dates. La syntaxe random.randint (start, end, k) random fait ici référence à la bibliothèque aléatoire Python. La méthode Randint utilise trois éléments importants
