公用文件夹文件中的“找不到类'Auth'”

时间:2019-02-06 11:46:14

标签: javascript php laravel

我在公用文件夹中有2个文件。第一个通过php生成json,第二个通过Java脚本在视图中填充php文件。 问题是我需要将登录的用户名传递给json php文件。 错误是这样的:

Fatal error: Uncaught Error: Class 'Auth' not found in C:\WEB\vhosts\blog\public\datatableeditor\data.php:168 Stack trace: #0 {main} thrown in C:\WEB\vhosts\blog\public\datatableeditor\data.php on line 168

在此之后,我添加

use Illuminate\Support\Facades\Auth;

下一个错误是:

Fatal error: Uncaught Error: Class 'Illuminate\Support\Facades\Auth' not found in C:\WEB\vhosts\blog\public\datatableeditor\data.php:169 Stack trace: #0 {main} thrown in C:\WEB\vhosts\blog\public\datatableeditor\data.php on line 169

如何导航到课程?

2 个答案:

答案 0 :(得分:2)

Laravel是一个MVC框架。处理此问题的正确方法是使用路由和控制器,如果希望它们成为应用程序的一部分,则永远不要在公共目录中创建php文件。

即使您自动加载了供应商文件并启动了laravel,您仍会缺少对用户进行身份验证的中间件。我建议您在使用Laravel之前通读所有文档并阅读MVC。

答案 1 :(得分:1)

简而言之,Auth类由作曲家自动加载。因此,您需要要求它是autoload.php文件。根据您提供的目录结构,它在data.php中应该看起来像这样:

require __DIR__ . '/../../vendor/autoload.php';

话虽如此,它对您没有帮助,因为外墙需要首先初始化Laravel的服务容器才能工作。查看Laravel的directory structure上的官方文档。您应该切勿公开public文件夹中的PHP文件-这是绝对错误的,并可能导致严重的安全问题。如果要使用Laravel的服务,则需要正确地组织项目。

如果您想通过URL访问某些PHP逻辑,请创建 route 并将其与特定的 controller's action 链接起来,然后将您的PHP逻辑放入该控制器中。

Laravel的index.php这样可以处理您的请求,正确启动所有框架部分并进行处理。