Как сделать роутинг для страниц, добавляемых через админку?

Для реализации роутинга страниц, добавляемых через админку, в рамках Laravel, вам понадобится несколько шагов.

1. Создайте маршрут для админской части вашего приложения:

Route::prefix('admin')->group(function () {
    // Ваши маршруты для админской части
});

Функция prefix('admin') определяет, что все маршруты внутри группы будут начинаться с /admin.

2. Создайте маршрут для обработки запросов на добавление страницы через админку:

Route::post('/admin/pages', 'PageController@store')->name('pages.store');

В данном случае, мы используем метод POST и указываем, что запросы на URL /admin/pages должны обрабатываться методом store() класса PageController. Также мы присваиваем этому маршруту имя pages.store, чтобы иметь возможность ссылаться на него в дальнейшем.

3. В методе store() класса PageController реализуйте логику сохранения новой страницы:

public function store(Request $request)
{
    // Валидация данных
    $validatedData = $request->validate([
        'title' => 'required',
        'content' => 'required',
    ]);

    // Создание новой страницы
    $page = new Page;
    $page->title = $validatedData['title'];
    $page->content = $validatedData['content'];
    $page->save();

    // Редирект на страницу со списком всех страниц
    return redirect()->route('pages.index');
}

Метод store() принимает объект Request, который содержит в себе данные, отправленные пользователем при добавлении новой страницы. В данном примере, мы выполняем валидацию данных с помощью метода validate(). Если данные валидны, мы создаем новый объект Page, присваиваем ему значения полей из запроса и сохраняем его в базу данных. Затем, мы делаем редирект на страницу со списком всех страниц при помощи метода redirect()->route('pages.index').

4. Соответственно, для отображения списка всех страниц, добавьте маршрут и метод в контроллер:

Route::get('/admin/pages', 'PageController@index')->name('pages.index');

public function index()
{
    // Получение всех страниц
    $pages = Page::all();

    // Возвращение представления с данными о страницах
    return view('admin.pages.index', compact('pages'));
}

Маршрут /admin/pages будет обрабатываться методом index() класса PageController, который получит все страницы из базы данных и передаст их в представление index.blade.php в виде переменной $pages.

Таким образом, вы создали роутинг для страниц, добавляемых через админку, который включает маршруты для добавления новой страницы и отображения списка всех страниц.