Calculer l'Âge à partir de la date stockée dans la base de données en Y-m-d à l'aide de Laravel 5.2
Salut de l'Utilisateur ajouter leur date de naissance par le biais du Formulaire que stocker en base de données,
Je voudrais calculer l'âge à partir stockées date dans la base de données dans ce format Y-m-d,
Ma Question est :
- Comment calculer l'Âge?
- Où mettre de la logique , De Contrôleur ou d'un Modèle?
- Comment passer la stockées Date en vue dans ce format "m-d-Y"
- Comment passer le résultat de la logique, qui est l'âge en vue.
- Je suis en utilisant quelque chose comme ci-dessous dans mon modèle c'est bon?
C'est de contrôleur:
public function index() {
$profile = User::find($this->userid())->profiledetailsHasOne; //This has Dob field
return view('profile.index',['profile' => $profile ]);
}
C'est mon Modèle:
public function getAge(){
$this->birthdate->diff($this->attributes['dob'])
->format('%y years, %m months and %d days');
}
C'est mon point de Vue:
<tr>
<th>Age</th>
<td>{{$profile->getAge()}}</td>
</tr>
Est-ce exact? Je suis d'erreur comme ci-dessous
Call to a member function diff() on null
OriginalL'auteur sanainfotech | 2016-02-20
Vous devez vous connecter pour publier un commentaire.
Les Dates peuvent être des instances de Carbone, qui propose toute une gamme de méthodes utiles.
Dans votre modèle, importer le Carbone de la classe:
Et de définir un accesseur:
Vous pouvez ensuite appeler
age
comme si c'était un attribut régulier. Par exemple, dans une lame de vue:OriginalL'auteur Florent B.
Pour afficher directement dans votre point de vue:
OriginalL'auteur Gabriel Glauber
Le calcul de l'âge dans Laravel est mieux de le faire à l'aide de l'accumulation de Carbone.
Dates retourné dans Laravel sont déjà dans un format de Carbone.
Cette logique devrait aller dans le modèle comme un défaut de lecture pour votre modèle.
Il en résulte "de 23 ans, 6 mois et 26 jours"
La caisse de la http://carbon.nesbot.com/docs/ docs pour toutes les choses amusantes que vous pouvez faire avec elle.
En supposant que vous êtes à l'aide de modèles dans votre point de vue et depuis, vous devriez faire un
getAge()
fonction dans ce modèle.Vous pouvez appeler votre modèle dans la vue comme
$user->getAge()
Semble que vous avez compris 😉
Merci pour votre aide!
OriginalL'auteur Frederiek
Merci pour tout ce que vous suggestion.
C'était facile et génial avec le carbone.
J'ai ajouté ce code dans le Modèle:
public function getDOB(){ return $this->dob->format('d-m-Y'); }
OriginalL'auteur sanainfotech
J'ai aussi réussi à obtenir le changement du format de la date "Y-m-d' de la base de données à la date de passage dans cette "d-mes".
Je place ce code dans le modèle
OriginalL'auteur sanainfotech