Переменная контроллера доступа непосредственно внутри класса компонентов — Laravel

#laravel #components #laravel-7

Вопрос:

Обычно мы передаем параметр из контроллера в компонент x, например lt;x-book-list books="$books" /gt; , и получаем доступ к нему в классе BookList, как показано ниже

  namespace AppViewComponents;  use IlluminateViewComponent;  class BookList extends Component {  public $books;    /**  * BookList Component  *  * @param array $book  *  * @return void  */  public function __construct(array $books)  {  $this-gt;books = $books;  }    

Я неоднократно использую этот компонент в своем приложении, но здесь я хочу сделать его немного чище, не добавляя books атрибут каждый раз, когда я его вызываю, потому что они определенно везде одинаковы.

Итак, могу ли я получить доступ books variable к классу компонентов внутренней книги, не проходя через lt;x-book-list /gt; него ?

Вероятно, что-то, как показано ниже.

  namespace AppViewComponents;  use IlluminateViewComponent;  class BookList extends Component {  public $books;    /**  * BookList Component  *  * @param array $book  *  * @return void  */  public function __construct()  {  // How to access $book variable directly from controller without passing from lt;x-booklist /gt; ????  }    

Комментарии:

1. создайте компонент книги, который расширяет компонент, передайте эту переменную в конструктор и используйте родительский конструктор в каждом расширенном компоненте компонента книги

2. @bhucho Не могли бы вы ответить на этот вопрос с помощью примеров кодов? Чтобы люди, которые придут сюда позже, могли это увидеть, или чтобы я мог это принять. Спасибо.