Created
May 1, 2025 19:55
-
-
Save umutyerebakmaz/d68af740d2f7b18291c5182ee65cfb3c to your computer and use it in GitHub Desktop.
example for beginners
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
use App\Http\Controllers\BankAccountController; | |
use App\Http\Controllers\BlogController; | |
use App\Http\Controllers\CargoCompanyController; | |
use App\Http\Controllers\ContactController; | |
use App\Http\Controllers\DiscountController; | |
use App\Http\Controllers\FrequentlyAskedQuestionController; | |
use App\Http\Controllers\MailDesignController; | |
use App\Http\Controllers\PaymentRequestController; | |
use App\Http\Controllers\ProductStockReservationController; | |
use App\Http\Controllers\ShoppingSessionController; | |
use App\Http\Controllers\UserController; | |
use Illuminate\Support\Facades\Route; | |
use App\Http\Controllers\ProductController; | |
use App\Http\Controllers\InsectController; | |
use App\Http\Controllers\PackTypeController; | |
use App\Http\Controllers\UsageAreaController; | |
use App\Http\Controllers\CommentController; | |
use App\Http\Controllers\PageController; | |
use App\Http\Controllers\BrandController; | |
use App\Http\Controllers\UserAddressController; | |
use App\Http\Controllers\PaymentController; | |
use App\Http\Controllers\ProfileController; | |
use App\Http\Controllers\ShoppingCartController; | |
use App\Http\Controllers\OrderDetailController; | |
/* | |
|-------------------------------------------------------------------------- | |
| 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! | |
| | |
*/ | |
require __DIR__ . '/auth.php'; | |
/* | |
|-------------------------------------------------------------------------- | |
| 🔐 Auth + 🛠️ Admin Panel Routes | |
|-------------------------------------------------------------------------- | |
| Yönetici kullanıcılar için erişilebilen panel rotalarıdır. | |
| `auth` + `administration` middleware'leri uygulanır. | |
| Route isimleri `administration.` prefix'i ile başlar. | |
*/ | |
Route::group(['middleware' => ['auth', 'administration']], static function () { | |
Route::group(['as' => 'administration.', 'prefix' => 'administration'], static function ($router) { | |
// 🏷️ Marka Yönetimi | |
$router->resource('brands', BrandController::class)->except('show'); | |
// 🚚 Kargo Firmaları | |
$router->resource('cargo-companies', CargoCompanyController::class)->except('show'); | |
// 👤 Kullanıcılar | |
$router->resource('users', UserController::class)->except('show'); | |
// 📦 Ürünler | |
$router->resource('products', ProductController::class)->except('show'); | |
// 🐜 Zararlılar | |
$router->resource('insects', InsectController::class)->except('show'); | |
// 📦 Ambalaj Tipleri | |
$router->resource('pack-types', PackTypeController::class)->except('show'); | |
// 🧪 Kullanım Alanları | |
$router->resource('usage-areas', UsageAreaController::class)->except('show'); | |
// 🎁 İndirimler | |
$router->resource('discounts', DiscountController::class)->except('show'); | |
// 🧾 Siparişler | |
$router->get('order-details/{order_detail}/edit', [OrderDetailController::class, 'edit'])->name('order-details.edit')->withTrashed(); | |
$router->put('order-details/{order_detail}', [OrderDetailController::class, 'update'])->name('order-details.update')->withTrashed(); | |
$router->delete('order-details/{order_detail}', [OrderDetailController::class, 'destroy'])->name('order-details.delete')->withTrashed(); | |
$router->resource('order-details', OrderDetailController::class)->except(['edit', 'update', 'delete']); | |
// 🏦 Banka Hesapları | |
$router->resource('bank-accounts', BankAccountController::class)->except('show'); | |
// 📝 Bloglar | |
$router->resource('blogs', BlogController::class)->except('show'); | |
// ❓ SSS | |
$router->resource('faqs', FrequentlyAskedQuestionController::class); | |
// 💳 Ödeme Hareketleri | |
$router->resource('payment-requests', PaymentRequestController::class)->only(['index', 'show', 'destroy']); | |
$router->delete('payment-requests/pending/clear', [PaymentRequestController::class, 'clearPending'])->name('payment-requests.clear-pending'); | |
// 🛒 Alisveris Oturumlari | |
$router->resource('shopping-sessions', ShoppingSessionController::class)->only(['index', 'show', 'destroy']); | |
// 🛒 Produdct Stock Reservations | |
$router->resource('product-stock-reservations', ProductStockReservationController::class)->only(['index', 'show', 'destroy']); | |
}); | |
}); | |
/* | |
|-------------------------------------------------------------------------- | |
| 👤 Authenticated User Routes | |
|-------------------------------------------------------------------------- | |
| Giriş yapmış kullanıcılar için geçerlidir. | |
| Kullanıcı profili, sepet, siparişler ve adres yönetimi burada yapılır. | |
*/ | |
Route::group(['middleware' => ['auth']], static function ($router) { | |
// 💬 Yorum | |
$router->post('comment/store', [CommentController::class, 'store'])->name('comment.store'); | |
// 🏠 Adresler | |
$router->get('adresler', [UserAddressController::class, 'index'])->name('addresses.index'); | |
$router->get('adresler/teslimat/create', [UserAddressController::class, 'createDelivery'])->name('addresses.delivery.create'); | |
$router->post('adresler/teslimat/store', [UserAddressController::class, 'storeDelivery'])->name('addresses.delivery.store'); | |
$router->get('adresler/fatura/create', [UserAddressController::class, 'createBilling'])->name('addresses.billing.create'); | |
$router->post('adresler/fatura/store', [UserAddressController::class, 'storeBilling'])->name('addresses.billing.store'); | |
$router->get('adresler/{userAddress}', [UserAddressController::class, 'show'])->name('addresses.show'); | |
$router->get('adresler/{userAddress}/edit', [UserAddressController::class, 'edit'])->name('addresses.edit'); | |
$router->put('adresler/{userAddress}', [UserAddressController::class, 'update'])->name('addresses.update'); | |
$router->put('adresler/delivery/{userAddress}/{redirect}', [UserAddressController::class, 'updateCurrentDelivery'])->name('addresses.current-delivery.update'); | |
$router->put('adresler/billing/{userAddress}/{redirect}', [UserAddressController::class, 'updateCurrentBilling'])->name('addresses.current-billing.update'); | |
$router->delete('adresler/{userAddress}/{redirectDelete}', [UserAddressController::class, 'destroy'])->name('addresses.destroy'); | |
// 💳 Checkout | |
$router->get('checkout', [PaymentController::class, 'checkout'])->name('checkout'); | |
// 🧾 Siparişler | |
$router->get('siparis/{order_detail}/ozet', [OrderDetailController::class, 'orderSummary'])->name('order.summary'); | |
$router->get('siparis/{order_detail}', [OrderDetailController::class, 'order'])->name('order'); | |
// 🛒 Sepet | |
$router->get('sepetim', [ShoppingCartController::class, 'sepetim'])->name('sepetim')->withoutMiddleware('throttle'); | |
$router->post('sepetim/add', [ShoppingCartController::class, 'add'])->name('shopping-cart.add')->withoutMiddleware('throttle'); | |
$router->post('sepetim/remove', [ShoppingCartController::class, 'remove'])->name('shopping-cart.remove')->withoutMiddleware('throttle'); | |
$router->post('sepetim/remove-product', [ShoppingCartController::class, 'removeProduct'])->name('shopping-cart.product.destroy')->withoutMiddleware('throttle'); | |
$router->post('sepetim/clear', [ShoppingCartController::class, 'clear'])->name('shopping-cart.clear')->withoutMiddleware('throttle'); | |
// 👤 Hesabım | |
$router->get('hesabim', [ProfileController::class, 'account'])->name('profile.account'); | |
$router->get('uyelik-bilgilerim', [ProfileController::class, 'information'])->name('profile.information'); | |
$router->put('uyelik-bilgilerim/{user}', [ProfileController::class, 'updateInformation'])->name('profile.information.update'); | |
$router->put('iletisim-bilgilerim/{user}', [ProfileController::class, 'updateContact'])->name('profile.contact.update'); | |
$router->get('siparislerim', [ProfileController::class, 'siparislerim'])->name('profile.orders'); | |
$router->delete('siparislerim/{order_detail}', [OrderDetailController::class, 'deleteMyOrder'])->name('profile.order.destroy'); | |
$router->get('yorumlarim', [ProfileController::class, 'comments'])->name('profile.comments'); | |
$router->delete('yorumlarim/{comment}', [ProfileController::class, 'destroyMyComment'])->name('profile.comments.destroy'); | |
$router->get('sifremi-degistir', [ProfileController::class, 'changePassword'])->name('profile.change-password'); | |
$router->post('sifremi-degistir', [ProfileController::class, 'storeChangePassword'])->name('profile.change-password.store'); | |
$router->get('iletisim-tercihlerim', [ProfileController::class, 'communicationPreferences'])->name('profile.communication-preferences'); | |
$router->post('iletisim-tercihlerim', [ProfileController::class, 'storeCommunicationPreferences'])->name('profile.communication-preferences.store'); | |
$router->get('adreslerim', [ProfileController::class, 'addresses'])->name('profile.addresses'); | |
$router->post('users/{user}/send-verification', [UserController::class, 'sendVerificationEmail'])->name('users.send-verification'); | |
}); | |
/* | |
|-------------------------------------------------------------------------- | |
| 🌐 Public Routes | |
|-------------------------------------------------------------------------- | |
| Giriş gerektirmeyen genel sayfalardır. (SEO + tanıtım + ödeme sonucu) | |
| Ziyaretçiler ve kullanıcılar tarafından erişilebilir. | |
*/ | |
Route::group([], static function ($router) { | |
// 💳 Ödeme Callback | |
$router->post('payment/callback', [PaymentController::class, 'callback'])->name('payment.callback'); | |
// 📄 Kurumsal Sayfalar | |
$router->get('hakkimizda', [PageController::class, 'hakkimizda'])->name('hakkimizda'); | |
$router->get('gizlilik-ve-guvenlik-politikasi', [PageController::class, 'gizlilik'])->name('gizlilik-ve-guvenlik-politikasi'); | |
$router->get('iptal-ve-iade-kosullari', [PageController::class, 'iptalKosullari'])->name('iptal-ve-iade-kosullari'); | |
$router->get('mesafeli-satis-sozlesmesi', [PageController::class, 'mesafeliSatisSozlesmesi'])->name('mesafeli-satis-sozlesmesi'); | |
$router->get('internet-sitesi-cerezleri-ve-beyani', [PageController::class, 'cerezPolitikasi'])->name('internet-sitesi-cerezleri-ve-beyani'); | |
// 📝 Blog | |
$router->get('blogs', [BlogController::class, 'blogs'])->name('blogs'); | |
$router->get('blogs/{blog:slug}', [BlogController::class, 'show'])->name('blogs.show'); | |
// 🏦 Banka Hesapları | |
$router->get('banka-hesaplarimiz', [BankAccountController::class, 'show'])->name('bank-accounts.show'); | |
// ❓ Sıkça Sorulan Sorular | |
$router->get('sikca-sorulan-sorular', [FrequentlyAskedQuestionController::class, 'faqs'])->name('faqs'); | |
// 📬 İletişim Formu | |
$router->get('bize-ulasin', [ContactController::class, 'contact'])->name('contact'); | |
$router->middleware('throttle:perMinute3')->post('iletisim', [ContactController::class, 'storeContact'])->name('contact.store'); | |
// 💌 Mail Design Routes (Geliştirme amaçlı) | |
$router->get('mail/design/your-order-has-been-confirmed', [MailDesignController::class, 'YourOrderHasBeenConrfirmedDesign']); | |
$router->get('mail/send/your-order-has-been-confirmed', [MailDesignController::class, 'YourOrderHasBeenConrfirmedSend']); | |
$router->get('mail/design/your-order-has-been-shipped', [MailDesignController::class, 'YourOrderHasBeenShippedDesign']); | |
$router->get('mail/send/your-order-has-been-shipped', [MailDesignController::class, 'YourOrderHasBeenShippedSend']); | |
$router->get('mail/design/new-order-received', [MailDesignController::class, 'NewOrderReceivedDesign']); | |
$router->get('mail/send/new-order-received', [MailDesignController::class, 'NewOrderReceivedSend']); | |
$router->get('mail/design/contact-form', [MailDesignController::class, 'ContactFormDesign']); | |
// 🛍️ Ürün ve Kategori Sayfaları | |
$router->get('/', [PageController::class, 'home'])->name('home'); | |
$router->get('ilac-markalari/{brand:slug}', [ProductController::class, 'biocidalBrands'])->name('biocidal-brands'); | |
$router->get('hasere-ilaclari/{insect:slug}', [ProductController::class, 'insectBiocidals'])->name('insect-biocidals'); | |
$router->get('vektor-kontrol-zararlilari', [InsectController::class, 'insects'])->name('vektor-kontrol-zararlilari'); | |
$router->get('vektor-kontrol-zararlilari/{insect:slug}', [InsectController::class, 'insect'])->name('insect'); | |
// 🧪 Ürün Detayı (slug dikkat: en sonda kalmalı!) | |
$router->get('{product:slug}', [ProductController::class, 'product'])->name('product'); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment