Moh*_*ndi -1 php laravel laravel-middleware laravel-6
我试图根据Laravel 文档在控制器的 __construct 中分配一个中间件,但它会引发以下错误:
BadMethodCallException
Method App\Http\Controllers\MyController::middlware does not exist.
Run Code Online (Sandbox Code Playgroud)
这是我的控制器类:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class MyController extends Controller
{
public function __construct()
{
$this->middleware('myauth');
}
/** something */
public function index()
{
return view('test.hi', ['name' => 'Moh']);
}
}
Run Code Online (Sandbox Code Playgroud)
这是中间件代码:
<?php
namespace App\Http\Middleware;
use Closure;
class myauth
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
echo time().'<br>';
return $next($request);
}
}
Run Code Online (Sandbox Code Playgroud)
Laravel 版本:6.5.2
我哪里做错了?
中间件可以在控制器的构造函数中指定
public function __construct() {
$this->middleware('auth');
}
Run Code Online (Sandbox Code Playgroud)
对于整个控制器:
$this->middleware('auth');
Run Code Online (Sandbox Code Playgroud)
仅针对特定操作:
$this->middleware('auth')->only('index');
Run Code Online (Sandbox Code Playgroud)
对于除特定操作之外的整个控制器:
$this->middleware('auth')->except('store');
Run Code Online (Sandbox Code Playgroud)