web.php 5.3 KB
<?php

use App\Http\Controllers\Admin\BannerController;
use App\Http\Controllers\Admin\CategoryController;
use App\Http\Controllers\Admin\CompanyController;
use App\Http\Controllers\Admin\GoodController;
use App\Http\Controllers\Admin\NewsController;
use App\Http\Controllers\Admin\ProjectController;
use App\Http\Controllers\AdminController;
use App\Http\Controllers\LoginController;
use App\Http\Controllers\MainController;
use App\Http\Controllers\RegisterController;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| 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('/', function () {
    return view('welcome');
});
*/

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

//Каталог
Route::get('catalog',[MainController::class, 'catalog'])->name('catalog');

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


//О компании
Route::get('company',[MainController::class, 'about_company'])->name('company');

//Карточка товара
Route::get('good/{good}',[MainController::class, 'good'])->name('good');

//Упрощенная карточка товара
Route::get('simplegood/{good}',[MainController::class, 'simple_good'])->name('simplegood');

//Связаться с нами
Route::post('online',[MainController::class, 'online'])->name('online');

Route::get('link', function() {
    Artisan::call('storage:link');
});

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::get('vefiry-message', function () {
        return view('auth.test');
    })->name('vefiry-message');

});

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

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

    /*
     * CRUD-операции над категориями
    */
    Route::resource('category', CategoryController::class, ['except' => ['show']]);

    /*
     * CRUD-операции над компанией
    */
    Route::resource('company', CompanyController::class, ['except' => ['create', 'store', 'destroy', 'index']]);

    /*
     * CRUD-операции над категориями
    */
    Route::resource('goods', GoodController::class, ['except' => ['show']]);

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

    //дополнительный маршрут для добавления картинок объектов недвижимости
    Route::post('img/good/{good}', [GoodController::class, 'good_add_img'])
        ->name('img.add.good');

    //дополнительный маршрут для удаления картинок объектов недвжимости
    Route::get('img/del/{id}/good/{good}', [GoodController::class, 'good_del_img'])
        ->name('img.del.good');

    /*
     * CRUD-операции над категориями
    */
    Route::resource('news', NewsController::class, ['except' => ['show']]);

    /*
     * CRUD-операции над категориями
    */
    Route::resource('project', ProjectController::class, ['except' => ['show']]);

});