Несколько экземпляров компонентов Blade X в одном представлении - PullRequest
0 голосов
/ 22 марта 2020

Можно ли создать несколько экземпляров одного компонента Blade X?

// app/view/components/foo.php

class Foo extends Component {
    public $name;

    public function __construct($name)
    {
        $this->name = $name;
    }

    ...
// resources/views/components/foo.blade.php
<div>
    {{  $name }}
</div>
// resources/views/rootcomponent.blade.php
<x-foo name="John"></x-foo>
<x-foo name="Mary"></x-foo>

В нем говорится: Невозможно объявить класс App \ View \ Components \ Foo, поскольку имя уже используется

Если вы используете его один раз или используете без переменных конструктора / класса, это работает. Может быть, я буду go анонимным способом, мне просто было любопытно, что я делаю не так.

1 Ответ

0 голосов
/ 22 марта 2020

Кажется, что базовый класс уже имеет это свойство, поэтому его не нужно повторно объявлять.

// app/view/components/foo.php

class Foo extends Component {

    /* doesn't need to redeclare base class property */
    //public $name;

    public function __construct($name)
    {
        parent::__construct($name);

        /* doesn't need this line anymore. */
        // $this->name = $name;

        /* < Custom command line here.
             ... >

             But if there is no custom command line needed,
             then this constructor is useless,
             so no need to declare this.
          */
    }

    ...

Надеюсь, это может кому-нибудь помочь.

...