Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Middleware di fungsi construct controller Laravel 11
Saya mendapatkan error undefined middleware saat melaukannya di fungis __construct() di Laravel 11 (Inertia React)
public function __construct()
{
$this->middleware('auth')->except(['index', 'show']);
}
0
2 Jawaban:
Ini cara menggunakan middlware di Controller di Laravel 11:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Routing\Controllers\HasMiddleware;
use Illuminate\Routing\Controllers\Middleware;
class UserController extends Controller implements HasMiddleware
{
/**
* Get the middleware that should be assigned to the controller.
*/
public static function middleware(): array
{
return [
'auth',
new Middleware('log', only: ['index']),
new Middleware('subscribed', except: ['store']),
];
}
// ...
}
0
Tanggapan
Makasih
- Daftarkan middleware di bootstrap/app.php
Buka file:
bootstrap/app.php
Lalu cari bagian:
->withMiddleware(function (Middleware $middleware) {
//
})
Tambahkan definisi berikut di dalamnya:
->withMiddleware(function (Middleware $middleware) {
$middleware->alias([
'auth' => \App\Http\Middleware\Authenticate::class,
]);
})
Jika kamu juga pakai middleware lain seperti guest, verified, dsb., kamu bisa tambahkan sekaligus:
->withMiddleware(function (Middleware $middleware) {
$middleware->alias([
'auth' => \App\Http\Middleware\Authenticate::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'verified' => \App\Http\Middleware\EnsureEmailIsVerified::class,
]);
})
- Pastikan file middleware Authenticate ada
Cek file:
app/Http/Middleware/Authenticate.php
Dan pastikan ada, serta berisi sesuatu seperti:
namespace App\Http\Middleware;
use Illuminate\Auth\Middleware\Authenticate as Middleware;
class Authenticate extends Middleware
{
protected function redirectTo($request): ?string
{
return $request->expectsJson() ? null : route('login');
}
}
harusnya sudah tidak error lagi.
0