Mmmm kayakya judulnya agak aneh,, tapi disini saya mau menginfokan bahwa file route tidak hanya di folder routes dan web.php,, akan tetapi bisa di bagi-bagi sesuai prefix yang digunakan,
Jadi misalkan route kita seperti ini :
admin/permission
admin/user
admin/role
transaksi/penjualan
transaksi/pembelian
report/penjualan
report/pembelian
Terlihat kita bisa membagi file route kedalam 3 file, yaitu file admin.php, transaksi.php dan report.php
Letak konfigurasi file web.php ada di App/Providers/RouteServiceProvider.php berikut contoh file tersebut
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
});
}
Jadi apabila ubah nama web.php menjadi default.php dan kita merubah settingan diatas yang semula 'routes/web.php' menjadi 'routes/default.php' maka aplikasi kita dapat berjalan dengan normal.
So agar menjadi rapi maka saya biasanya membuat folder web dan merename web.php menjadi default.php dan men-cut file default.php ke dalam folder web. Sehingga file RoutesServiceProvider.php saya rubah seperti ini ;
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web/default.php'));
Okkay setelah saya rubah seperti itu mestinya aplikasi berjalan seperti biasa.
Setelah itu saya membagi file sesuai dengan prefix dan menambahkan seperti ini
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web/default.php'));
Route::middleware('web', 'has.role')
->namespace($this->namespace)
->prefix('admin')
->group(base_path('routes/web/admin.php'));
Route::middleware('web', 'has.role')
->namespace($this->namespace)
->prefix('master')
->group(base_path('routes/web/master.php'));
Route::middleware('web', 'has.role')
->namespace($this->namespace)
->prefix('trans')
->group(base_path('routes/web/trans.php'));
Route::middleware('web', 'has.role')
->namespace($this->namespace)
->prefix('report')
->group(base_path('routes/web/report.php'));
Hilangkan 'has.role' bila halaman yg di akses tidak perlu login
Dan bisa di tebak sekarang didalam folder web terdapat file-file seperti ini :
So sekarang kita bisa membagi-bagi route ke masing-masing folder, contoh untuk prefix account, maka isi didalam file account.php seperti ini :
<?php
use App\Http\Controllers\Account\ChangePasswordController;
use App\Http\Controllers\Account\EditProfileController;
use App\Http\Controllers\Account\ProfileController;
use Illuminate\Support\Facades\Route;
Route::middleware('auth')->group(function () {
Route::get('profile', ProfileController::class)->name('profile');
Route::get('change-password', [ChangePasswordController::class, 'index'])->name('password');
Route::get('edit-profile', [EditProfileController::class, 'index'])->name('edit.profile');
Route::put('{id}/edit', [EditProfileController::class, 'update'])->name('update.profile');
Route::put('{id}/edit-password', [ChangePasswordController::class, 'update'])->name('update.password');
// });
});
Hilangkan middleware('auth') jika halaman yg di akses tidak perlu login
Maka kita tidak perlu mendefinisikan group prefix lagi disini karena sudah dibagi sebelumnya di file RouteServiceProvider.
Sekian tutorial saya,, semoga bermanfaat.
Tidak ada komentar:
Posting Komentar