Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为公用laravel文件夹中的目录定义路由_Php_Laravel - Fatal编程技术网

Php 为公用laravel文件夹中的目录定义路由

Php 为公用laravel文件夹中的目录定义路由,php,laravel,Php,Laravel,我在publiclaravel文件夹中有一个名为fileManager的目录。现在我想通过中间件控制对它的访问,以便未签名或未登录的用户不能直接访问它 默认情况下,任何用户都可以在浏览器中键入目录名并导航到它。 我希望能够定义这样一个路由,它可以应用和验证中间件: Route::get('/fileManager', ['middleware' => 'auth', function () { // }]); 这不仅仅是,我在公用文件夹中有许多目录,可能我想控制用户对这些目录的访

我在
public
laravel文件夹中有一个名为
fileManager
的目录。现在我想通过中间件控制对它的访问,以便未签名或未登录的用户不能直接访问它

默认情况下,任何用户都可以在浏览器中键入目录名并导航到它。 我希望能够定义这样一个路由,它可以应用和验证中间件:

Route::get('/fileManager', ['middleware' => 'auth', function () {
    //
}]);
这不仅仅是,我在公用文件夹中有许多目录,可能我想控制用户对这些目录的访问


如何才能做到这一点?

对于创建中间件,请在文件中创建类

应用程序/http/中间件

创建后

将数组添加到类的kernel.php

    protected $routeMiddleware = [
            'auth' => \App\Http\Middleware\Authenticate::class,
            'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
            'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
            'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,

           'newMiddleware' => pahttoclass
        ];

有很多方法可以做到这一点。你可以选择任何你喜欢的人。但是我总是在每个
控制器中使用
\uu construct()
方法。只需在控制器中写入此块

public function __construct()
{
    $this->middleware('auth');
}

它将保护所有
方法
仅在此
控制器中
不被未经授权的用户使用。

我认为您应该将这些目录移动到
存储
目录`并根据请求发送响应。我认为你们不能限制对公用文件夹的访问。我的问题不是关于定义中间件,我的问题不是关于定义中间件