Добавить свойство объекта

В модели можно создать свойство, которое будет доступно во всех контроллерах.

Например, если у записи есть два свойства «name» и «last_name», и чтобы каждый раз не создавать свойство «full_name», её можно определить в модели.

# app/Post.php

class Post extends Model
{

    public function getFullNameAttribute():string
    {
        return $this->name.' '.$this->last_name;
    }

    public function getAgeAttribute():int
    {
        $birth = new \DateTime($this->date_birth);
        return $birth->diff(new \DateTime)->y;
    }

}

Свойство создаётся через имя «get{Name}Attribute» в стиле «CamelCase».

Теперь для записи доступно свойство «full_name» или «fullName».

# app/Http/Controllers/PostController.php

class PostController extends Controller
{
    public function show()
    {
        $post = Post::find(1);
        $post->full_name;
        $post->age;
    }
}