Доступ к контроллеру ресурсов Laravel из HTTP-контроллера

Я реализую небольшой проект по ведению списка книг. Я использую PHP 7, Laravel 5.5, Eloquent и SQLite.

Я создал класс модели book и соответствующий контроллер ресурсов BookController. Для простоты у книги должны быть только общедоступные свойства: название и автор.

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

В моем BookController есть функция store ():

 public function store(Request $request)
{
    // Validate the request...
    $book         = new Book;
    $book->title  = $request->title;
    $book->author = $request->author;
    $book->save();
}

В моем AdminController есть HTML-форма с полями ввода для новых книг (одно для названия, одно для автора), а также кнопка отправки. Эта кнопка вызывает AdminController@post.

Теперь мне интересно, как на самом деле добавить книгу оттуда.

Должен ли я вызвать BookController из AdminController и передать объект запроса в BookController? Так ли взаимодействуют контроллеры в Laravel? Или мне следует избегать функции store и добавлять ее напрямую в AdminController?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
205
1

Ответы 1

  • Я думаю, вам следует разделить два контроллера для двух целей. Вы можете объявить переменную как модель Book в других контроллерах и работать с ней.
  • Вы можете использовать BookController для обоих, просто нужно определить два маршрута для одного контроллера и написать некоторую логику в методе хранилища, моя точка зрения ... это не лучший способ. Потому что нужно проверить некоторые вары, чтобы определить, какой запрос от администратора и от пользователя. Я не хочу усложнять рабочий процесс пользователя и администратора.

Другие вопросы по теме