php - Laravel:目标类不存在。但它确实
问题描述
我一直在寻找答案,但主要是问题是类或控制器中的拼写错误。
就我而言,一切都拼写正确。 app\Http\Controllers\GenerateTextController.php中的类:
<?php
namespace App\Http\Controllers;
class generateText extends Controller
{
public function generate()
{
dd('success');
}
}
然后我尝试将其注入刀片。home.blade.php:
@inject ('generate', 'App\Http\Controllers\GenerateTextController')
@dd($generate)
结果:
Target class [App\Http\Controllers\GenerateTextController] does not exist.
我已经自动加载了几次作曲家,清除了工匠缓存,没有任何帮助。我什至无法在 web.xml 中找到最接近的解决方案。
有趣的事情:当我尝试dd
其他类时,也就是说,如何说 Laravel 的“预定义” - 它显示了该类。我的第二个自定义类可以通过这种注入在浏览器中查看。
任何帮助表示赞赏。
解决方案
你的类文件名是app\Http\Controllers\GenerateTextController.php
,但类名是generateText
,这就是问题所在。类名和文件名应该匹配。这就是PSR-4
自动加载器的工作方式。
从规范:
终止类名对应于以 .php 结尾的文件名。文件名必须与终止类名的大小写匹配。
所以类名应该是这样的:
class GenerateTextController extends Controller
{
// ...
}
阅读PSR-4自动装载机以了解它。
推荐阅读
- wso2 - APIM 2.6.0 通过 APIM 2.6.0 的 Rest API 为 API 安装 SSL 证书
- c++ - 在 C++ 中将 utf8 wstring 转换为 windows 上的字符串
- javascript - React 抓取 JSON 响应属性
- pandas - 如何编写包含条件语句的种子特征
- javascript - String.Replace() 的小问题
- node.js - 如何为 LUIS 应用启用主动学习 - botvuilder SDK JavaScript V4
- java - 如何修复 IOException
- javascript - 如何在缩放的画布中获取像素范围?
- c++ - 在 OpenCV 的 solvePNP 上,点数的断言失败
- c++ - CAN 标识符消息同步问题