php - 控制器类存在但未找到
问题描述
由于某种原因,即使目标控制器类已经存在于正确的路径中,也找不到它。
路线
Route::post('/send', 'MailController@send');
我的控制器路径是 App->Http->Controllers
这是我的控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use App\Mail\SendMail;
class MailController extends Controller{
function index() {
...
}
function send(Request $request) {
...
}
}
我已经尝试过 composer dump-autoload。我使用的是 laravel 框架 8.0,所以我也尝试恢复并使用 7.24。仍然没有找到目标类。
解决方案
在Laravel 8中,$namespace
值为 的属性默认App\Http\Controllers
设置为null,因此需要定义:
改变 :
Route::post('/send', 'MailController@send');
到,
use App\Http\Controllers\UserController;
Route::post('/send', [MailController::class, 'send']);
或者,使用字符串语法:
Route::get('/users', 'App\Http\Controllers\MailController@send');
lagbox 提供了详细的答案。
推荐阅读
- angular - 如何通过组件传递 CDK 列和行定义
- java - SoftKeyboard Listener 检查键盘何时打开/关闭且 ProgressBar 正确运行
- javascript - 不等的 div 高度
- javascript - 如何从具有相同元素 ID 的 SVG 序列创建动画
- java - Jackson 如何决定从数值创建什么类型的 NumericNode
- html - 打印中重复表头时缺少下标或上标标记的内容
- c# - 创建用于 Web 应用程序连接字符串的数据库登录名
- ios - 无法按升序对表格视图数据进行排序
- php - 如何查看哪个类(控制器、方法..)调用模型保存、更新、创建
- javascript - 撇号在 JSON 字符串数组中转义