функция в модели в Laravel для отображения возраста - PullRequest
0 голосов
/ 22 мая 2018

я создаю функцию в laravel, чтобы вычислить возраст и отобразить его в поле зрения, но я получаю эту ошибку

Call to undefined method stdClass::age()

Это моя модель

use Carbon\Carbon;


  public function age() 
    {
    return $this->date_de_naissance->diffInYears(Carbon::now());
    }

Это мой взгляд:

 @foreach  ($patient as $pat ) 

              <tr>
                <td><a href="#" >{{ $pat->nom }}</a> </td>
                 <td> {{ $pat->prenom }} </td>
                  <td> {{ $pat->nom_epouse }} </td>
                  <td> {{ $pat->age() }}  </td>//
                  <td>{{ $pat->sexe }}</td>
                 </tr>

Ответы [ 3 ]

0 голосов
/ 22 мая 2018

На данный момент это решило мою проблему

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Carbon\Carbon;
use App\Patient as pat;


class Patient extends Model
{
       use Notifiable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */

    protected $fillable = [
        'nom', 'id_pat', 'nom_epouse','prenom','sexe','date_de_naissance','etat_civil','id_chicha','id_tab','id_alc','id_neffa','id_autres',
    ];
    protected $table="patients";


    public static function getAge($pat) 
    {


 return Carbon::parse($pat->date_de_naissance)->diffInYears(Carbon::now());
     }

}
0 голосов
/ 22 мая 2018

вы всегда можете определить этот код в вашей модели

protected $dates=['date_de_naissance'];

, а затем напрямую использовать его в цикле.

{{$pat->date_de_naissance->diffInYears(\Carbon::now())}}

вместо

{{ $pat->age() }}

Примечание. При определении имени столбца в защищенном массиве $ date ваше значение автоматически становится экземпляром carbon при вызове

0 голосов
/ 22 мая 2018

Если вы не знали, вы можете конвертировать Date или Datetime или любой другой формат даты в age, используя Carbon ->age:

Carbon::parse($pat->date_de_naissance)->age;

Вам необходимо изменить $patient в controller перед отправкой на view, потому что в Carbon набрать controller.

foreach($patient as $pat)
    $pat['date_de_naissance'] = Carbon::parse($pat['date_de_naissance'])->age;
проще.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...