web.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. use Illuminate\Support\Facades\Route;
  3. use App\Http\Controllers\BookController;
  4. use App\Http\Controllers\CategoryController;
  5. use App\Http\Controllers\LoanController;
  6. use App\Http\Controllers\PenaltyController;
  7. use App\Http\Controllers\UserController;
  8. use App\Http\Controllers\ProfileController;
  9. /*
  10. |--------------------------------------------------------------------------
  11. | Web Routes
  12. |--------------------------------------------------------------------------
  13. |
  14. | Here is where you can register web routes for your application. These
  15. | routes are loaded by the RouteServiceProvider within a group which
  16. | contains the "web" middleware group. Now create something great!
  17. |
  18. */
  19. Route::get('/', [BookController::class, 'index'])->name('home');
  20. Auth::routes();
  21. Route::resources([
  22. 'books' => BookController::class,
  23. 'categories' => CategoryController::class
  24. ], [
  25. 'only' => ['index', 'show']
  26. ]);
  27. Route::post('/books/search', [BookController::class, 'search'])
  28. ->name('books.search');
  29. Route::post('/categories/search', [CategoryController::class, 'search'])
  30. ->name('categories.search');
  31. Route::post('/categories/{category}/search', [CategoryController::class, 'searchBooks'])
  32. ->name('categories.searchBooks');
  33. Route::group([
  34. 'middleware' => 'auth',
  35. 'prefix' => 'auth'
  36. ], function () {
  37. Route::resources([
  38. 'loans' => LoanController::class,
  39. 'penalties' => PenaltyController::class
  40. ], [
  41. 'only' => ['index', 'show']
  42. ]);
  43. Route::post('/loans/search', [LoanController::class, 'search'])
  44. ->name('loans.search');
  45. Route::post('/penalties/search', [PenaltyController::class, 'search'])
  46. ->name('penalties.search');
  47. Route::controller(ProfileController::class)->group(function () {
  48. Route::get('/profiles/{user}', 'show')->name('profiles.show');
  49. Route::get('/profiles/{user}/edit', 'edit')->name('profiles.edit');
  50. Route::match(['put', 'patch'], '/profiles/{user}', 'update')
  51. ->name('profiles.update');
  52. });
  53. });
  54. Route::group([
  55. 'middleware' => 'role:Administrator',
  56. 'prefix' => 'admin'
  57. ], function () {
  58. Route::resources([
  59. 'books' => BookController::class,
  60. 'categories' => CategoryController::class,
  61. 'loans' => LoanController::class,
  62. 'penalties' => PenaltyController::class
  63. ], [
  64. 'except' => ['index', 'show']
  65. ]);
  66. Route::resource('users', UserController::class);
  67. Route::post('/users/search', [UserController::class, 'search'])
  68. ->name('users.search');
  69. });