Задать вопрос
sanek_os9
@sanek_os9
Работаю с Laravel, Vue, Vuetify, AWS Amazon, Linux

Как в twig показать свойство объекта?

Ситуация такая, до использования twig класс имел такой вид
class User
{
    public $data = [];

    public function __construct($id)
    {
        $this->id = $id;
        $this->data = $this->getData();
    }
    private function getData()
    {
        return [];
    }
    public function __get($name)
    {
        if (isset($this->data[$name])) {
            return $this->data[$name];
        }
    }
}

И данные я получал к примеру так
$user = new User(1);
echo $user->first_name;

В twig так не работает если прописать
{{user.first_name}}
ему нужно что то вроде этого
class User
{
    public $data = [];
    public $first_name;

    public function __construct($id)
    {
        $this->id = $id;
        $this->data = $this->getData();
        $this->first_name = $this->data['first_name'];
    }
    private function getData()
    {
        return ['first_name' => 'Йаволь'];
    }
    public function __get($name)
    {
        if (isset($this->data[$name])) {
            return $this->data[$name];
        }
    }
}

мне теперь все свойства вот так прописывать?
  • Вопрос задан
  • 1087 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
DevMan
@DevMan
1. коль играешь в магию, то $data нужно делать приватным, а не публичным.
2. коль играешь в магию, то играй до конца - где метод __isset()?
3. use manual luke - https://twig.sensiolabs.org/doc/2.x/recipes.html#u...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽