Tutorial Slicing Template Admin Stisla dengan Laravel #5 - Membuat Controller Dashboard


Rafi Taufiqurrahman
Cuma Hooman yang suka Laravel
Tutorial Slicing Template Admin Stisla dengan Laravel #5 - Membuat Controller Dashboard

Setelah berhasil mengimplementasikan layout auth untuk login dan register, silahkan teman - teman buka CMD/Terminal silahkan ketikan perintah berikut

php artisan make:controller Admin/DashboardController -i

Perintah diatas akan membuatkan kita sebuah Controller dengan nama Dashboard yang terletak pada app/http/controllers/admin/ dengan 1 sebuah method __invoke. Selanjutnya teman - teman buka Controller tersebut kemudian ikut code dibawah ini

<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class DashboardController extends Controller
{
    /**
     * Handle the incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function __invoke(Request $request)
    {
        return view('admin.dashboard');
    }
}

Pada kode diatas pada Method __invoke kita mengembalikan sebuah view dengan nama admin.dashboard. Dikarenakan kita belum memiliki view tersebut maka kita akan membuatnya terlebih dahulu, silahkan teman - teman buat folder baru dengan nama admin pada folder resources/views/ kemudian pada folder admin tersebut silahkan teman - teman buat file baru dengan nama dashboard.blade.php .

Imgur

Setelah berhasil membuat view dan controllernya sekarang kita akan lanjutkan membuat sebuah routenya, silahkan teman - teman buka file yang bernama web.php yang terletak pada folder routes/, kemudian silahkan ikuti code berikut ini

<?php

use App\Http\Controllers\Admin\DashboardController;
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::group(['prefix' => 'admin', 'as' => 'admin.', 'middleware' => ['auth']], function(){
    Route::get('/dashboard', DashboardController::class)->name('dashboard');
});

Pada kode diatas, kita membuat sebuah route group yang memiliki prefix admin , prefix disini maksudnya adalah ketika teman - teman membuka route dashboard maka akan otomatis menambahkan /admin, jika fullnya seperti ini /admin/dashboard, Selanjutnya kita menambahkan as admin., as disini maksudnya adalah semua route yg berada didalam grup tersebut memiliki name dengan awalan admin. sehingga untuk menggakses route dashboard menggunakan namenya kita harus menulisan admin.dashboard, yang terakhir kita menambahkan middleware auth, middleware disini berguna untuk memverifikasi setiap user yang melakukan authtentikasi. Agar ketika kita melakukan registrasi ataupun login langsung mengarah ke route dashboard silahkan teman - teman buka file RouteServiceProvider.php yang terletak pada folder app/providers/, kemudian masukan code dibawah ini :

<?php

namespace App\Providers;

use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\Facades\Route;

class RouteServiceProvider extends ServiceProvider
{
    /**
     * The path to the "home" route for your application.
     *
     * Typically, users are redirected here after authentication.
     *
     * @var string
     */
    public const HOME = '/admin/dashboard';

    /**
     * Define your route model bindings, pattern filters, and other route configuration.
     *
     * @return void
     */
    public function boot()
    {
        $this->configureRateLimiting();

        $this->routes(function () {
            Route::middleware('api')
                ->prefix('api')
                ->group(base_path('routes/api.php'));

            Route::middleware('web')
                ->group(base_path('routes/web.php'));
        });
    }

    /**
     * Configure the rate limiters for the application.
     *
     * @return void
     */
    protected function configureRateLimiting()
    {
        RateLimiter::for('api', function (Request $request) {
            return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
        });
    }
}

Pada kode diatas, bagian public const Home = '/home' kita lakukan perubahan code menjadi public const Home = '/admin/dashboard'.

Membangun Aplikasi Inventory Dengan Laravel & Tailwind CSS: https://santrikoding.com/ebook/membangun-aplikasi-inventory-dengan-laravel-tailwind-css?ref=8659VS4962


Rafi Taufiqurrahman
Cuma Hooman yang suka Laravel

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

ARTIKEL TERKAIT

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami