Comment faire pour que mon propre timestamp méthode dans Laravel?
Généralement, la Laravel plate-forme ont un $table->timestamps();
en migration..., il génère deux datetime
champs,
Mais je tiens à mettre en place mes propres horodateurs ou, peut-être appeler unix_timestamps()
. Je voudrais avoir deux champs nommés created_at
, et updated_at
, et qui permettent d'enregistrer les timestamps unix, comment puis-je mettre en œuvre? Merci.
Je suis en supposant que vous voulez les mêmes caractéristiques que $table->timestamp(), c'est à dire la mise à jour automatique des horodateurs? Sinon, $tableau->entier('created_at').
OriginalL'auteur DNB5brims | 2013-04-05
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas à utiliser Laravel horodatage de l'aides, mais ils sont pratiques. Il ya quelques bonnes façons de travailler avec de la ficelle horodateurs, y compris PHP DateTime classe. Mais je m'éloigne du sujet, à l'utilisation des timestamps unix...
Dans votre Schéma (migration), l'utilisation
au lieu de
Remplacer le
timestamp()
fonction de vos modèles.$timestamps = true
dans vos modèles.Voici un exemple de modèle de base que vous pourriez utiliser, et de l'étendre au lieu de Éloquent sur vos modèles:
OriginalL'auteur Phill Sparks
Pour Laravel 4:
models/product.php
Laravel 4 la mutation se fait aussi toutes les dates/les horodatages de Carbone instances (Documenté ici)
Qui signifie que vous devez également remplacer le
getDates()
méthode pour éviter de Carbone ruiner votre timestamp avant l'insertion.database/migrations/2013_04_20_125823_create_products_table.php :
db:seed
. Je n'ai pas le temps de regarder dans exactement pourquoi il en est pour le moment.OriginalL'auteur Dirk
Je crains que vous aurez besoin de quelques laid hacks afin de réécrire le
timestamps()
fonction, et je suis sûr que c'est une mauvaise idée.Si vous avez besoin de votre propre format, il suffit de définir une nouvelle colonne. Il y a même une colonne de type timestamp dans Laravel du générateur de schéma (voir ici pour une liste complète des formats disponibles):
Vous serait toutefois nécessaire de définir des valeurs par défaut et/ou
ON UPDATE
par vous-même, ou vous pouvez utiliser les déclencheurs. Mais à la fin, vous êtes probablement mieux de coller à Laravel esttimestamps()
, parce qu'il prendra soin de tout automatiquement. Pourquoi auriez-vous besoin d'autre chose?OriginalL'auteur Adrenaxus
J'ai eu cette même exigence et trouvé une solution qui pourrait fonctionner pour vous aussi. J'ai posté une pension de la façon dont je l'ai fait sur Github: Laravel Entier SQL Dates <== check it out pour plus de détails, mais voici l'essentiel:
OriginalL'auteur J W
Il suffit de créer un migrations/modèle de champ de type timestamp, puis dans votre contrôleur, le remplir avec de l'heure actuelle à l'aide de cette
OriginalL'auteur Bonfix Fixer Ngetich