У меня есть 5 контроллеров и 5 моделей, и все они связаны с бэкэндом. Я могу легко выводить данные в бэкэнд, но мне это нужно и для внешнего интерфейса. Не все конечно, но некоторые из них.
Например, у меня есть контроллер под названием BooksController:
public function getBooks(Request $request)
{
$books = Books::all();
return view('backend.books.show', compact('images'));
}
Так что это покажет это в бэкэнде без каких-либо проблем, но мне нужно, например, просмотреть все книги и показать их изображения в welcome.blade.php, который не имеет контроллера.
А также для передачи других параметров в это же представление с разных контроллеров.
Это возможно?
Спасибо.
У вас ошибка, потому что вы не объявили переменную $image
public function getBooks(Request $request)
{
$books = Books::all();
$images = array_map(function($book) {
$book->image;
}, $books);
return view('backend.books.show', compact('images'));
}
Похоже, вы потенциально догоняете некоторую терминологию. В этом случае кажется, что backend относится к интерфейсу, обращенному к администратору, а frontend относится к интерфейсу, ориентированному на пользователя.
Вы также, кажется, ограничены идеей контроллеров. Если маршрут не является базовым, создайте для него контроллер.
Есть контроллер для вашего приветствия, для вашего администратора, в основном (за некоторыми исключениями) контроллер для ресурса или представления в порядке.
В этом случае у вас будет один контроллер для просмотра книги администратора и отдельный контроллер для просмотра приветствия. Оба из которых вытащили бы книги из БД и сделали бы их по-своему