#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 Не могли бы вы ответить на этот вопрос с помощью примеров кодов? Чтобы люди, которые придут сюда позже, могли это увидеть, или чтобы я мог это принять. Спасибо.