web.php 5.44 KB
<?php

use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\MainController;
use App\Http\Controllers\RegisterController;
use App\Http\Controllers\LoginController;
use App\Http\Controllers\AdminController;
use App\Http\Controllers\Admin\AreaController;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

//Главная страница
Route::get('/',[MainController::class, 'index'])->name('index');

//Страница Избранные
Route::get('favorite',[MainController::class, 'favorite'])->name('favorite');

//Страница контакты
Route::get('contact',[MainController::class, 'contact'])->name('contact');

//Страница каталог
Route::get('catalog',[MainController::class, 'catalog'])->name('catalog');

//Страница новости
Route::get('news',[MainController::class, 'news'])->name('news');

//Страница о компании
Route::get('about',[MainController::class, 'about'])->name('about');

//Страница объекты на карте
Route::get('maps',[MainController::class, 'mapsobj'])->name('maps');

// Политика конфедициальности
Route::get('conf', function () {
    return view('conf');
})->name('conf');

//Детальная страница предложения недвижимости
Route::get('offer/{house:id}', [MainController::class, 'offer'])->name('offer');

//Детальная страница новостей
Route::get('detail-new/{news:id}', [MainController::class, 'DetailNew'])->name('new');

//Страница ЖилойКомплекс
Route::get('complex/{area:id}', [MainController::class, 'complex'])->name('complex');

// ajax-фильтры каталога
Route::get('catalog_ajax_filter', [MainController::class, 'catalog_ajax_filter'])->name('catalog_ajax_filter');

//Категория
Route::get('category/{cat}', [MainController::class, 'Category'])->name('category');

//Категория ajax
Route::get('category_ajax/{cat}', [MainController::class, 'category_ajax'])->name('category_ajax');

//Страница куков
Route::get('cookies', function () {
    return view('cookies');
})->name('cookies');

//Форма обратной связи в футере
Route::post('main_form', [MainController::class, 'main_form'])->name('main_form');

//Форма обратной связи в хедере
Route::post('header_form', [MainController::class, 'header_form'])->name('header_form');

//Форма записаться на просмотр в карточке офиса
Route::post('rec_view_form', [MainController::class, 'rec_view_form'])->name('rec_view_form');

//Форма обратной связи на странице контакты
Route::post('page_contact_form', [MainController::class, 'page_contact_form'])->name('page_contact_form');

//Форма обратной связи предложения по почте
Route::post('email_form', [MainController::class, 'email_form'])->name('email_form');

Route::group([
    'as' => 'auth.', // имя маршрута, например auth.index
    'prefix' => 'auth', // префикс маршрута, например auth/index
], function () {
// Форма регистрации
    Route::get('register', [RegisterController::class, 'register'])->name('register');

// Создание пользователя
    Route::post('register', [RegisterController::class, 'create'])->name('create');
//Форма входа
    Route::get('login', [LoginController::class, 'login'])->name('login');

// аутентификация
    Route::post('login', [LoginController::class, 'autenticate'])->name('auth');

// выход
    Route::get('logout', [LoginController::class, 'logout'])->name('logout');
});

/*
 * Личный кабинет пользователя
 */
Route::group([
    'as' => 'user.', // имя маршрута, например user.index
    'prefix' => 'user', // префикс маршрута, например user/index
    //'namespace' => 'User', // пространство имен контроллеров
    'middleware' => ['auth'] // один или несколько посредников
], function () {
    // главная страница
    Route::get('index', [AdminController::class, 'index'])->name('index');
});

/*
 * Панель управления: CRUD-операции над постами, категориями, тегами
 */
Route::group([
    'as' => 'admin.', // имя маршрута, например admin.index
    'prefix' => 'admin', // префикс маршрута, например admin/index
    //'namespace' => 'Admin', // пространство имен контроллеров
    'middleware' => ['auth'] // один или несколько посредников
], function () {
    /*
     * CRUD-операции над постами Жилых комплексов
    */
    Route::resource('area', AreaController::class, []);

    //дополнительный маршрут для показа постов с жилыми массивами
    Route::get('post/area/{area}', [AreaController::class, 'area_category'])
        ->name('post.area');
});