Documentation Issue: $this->middleware() causes "undefined method" error in Laravel
Documentation Issue: $this->middleware() causes "undefined method" error in Laravel
Hello,
I recently encountered an issue while following the JWT Auth documentation for Laravel. Specifically, in the section where the AuthController is implemented, the provided example uses $this->middleware in the constructor:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;
class AuthController extends Controller
{
public function __construct()
{
$this->middleware('auth:api', ['except' => ['login']]);
}
}When running this code in my Laravel environment, I encountered the following error:
Call to undefined method App\Http\Controllers\AuthController::middleware()
After investigating, I discovered that the issue occurs because the Controller class being extended in the example refers to App\Http\Controllers\Controller, which doesn’t have the middleware() method. To fix this, I had to update my controller to extend the Illuminate\Routing\Controller class directly, like this:
class AuthController extends \Illuminate\Routing\Controller
{
public function __construct()
{
$this->middleware('auth:api', ['except' => ['login']]);
}
}It seems the documentation assumes the base Controller already provides the necessary functionality, which might not always be the case depending on the Laravel version or environment configuration.
Environment Details:
Laravel Version: 11
PHP Version: 8.3Thank you for this fantastic package! I hope this feedback helps improve the onboarding experience for other users.
Source: tymondesigns/jwt-auth