我正在使用laravel 5,在rutes.php中我有这样的代码:
Route::get('about',"homeController@about");
并在App \ Http \ Controllers \我有包含以下内容的文件homeController.php:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller as BaseController;
class homeController extends BaseController{
public function about(){
return view::make('about');
}
}
但它会抛出此错误:Class App \ Http \ Controllers \ homeController不存在。 我该怎么办呢?
答案 0 :(得分:2)
全部改变
public static async Task<string[]> SendToAllIps(string req)
{
var tasks = _allIps.Select(ip => SendRequest(new Uri(ip + req)));
return await Task.WhenAll(tasks);
}
要
homeController
答案 1 :(得分:2)
首先,检查您是否正确写入了控制器名称。 如果是,有3种方法:
Route::get('/about', 'App\Http\Controllers\homeController@about');
写下控制器所在的所有路径。
Route::get('/about', [HomeController::class, 'about');
//protected $namespace = 'App\\Http\\Controllers';
(你会在评论中找到它)//
条评论并保存。
使用此方法,您将可以直接使用控制器的名称,而无需
写出所有路径。答案 2 :(得分:1)
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller as BaseController;
class homeController extends BaseController{
public function about(){
return view::make('about');
}
}
答案 3 :(得分:1)
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller as BaseController;
class homeController extends BaseController{
public function about(){
return view::make('about');
}
}
应该完美无缺。您确定文件名是homeController.php
吗?
答案 4 :(得分:1)
我遇到了与Home控制器类似的问题,就我而言,我看到路由配置如下:
Route::get('/home',"homeController@index");
当我将上面的代码更改为以下代码后,它就起作用了。
Route::get('/home',"App\Http\Controllers\HomeController@about");
请首先检查您的拼写,是否应使用HomeController或homeController。
您可以将路线代码更改为以下
所以您可以尝试更改以下代码
Route::get('about',"HomeController@about");
到
Route::get('about', 'App\Http\Controllers\HomeController@about');
或
Route::get('/about', 'App\Http\Controllers\HomeController@about');
希望这会起作用。
答案 5 :(得分:0)
是的。这是对的,因为您没有为路线中的动作提供正确的路径。要么更新路径的核心文件,要么在路由中手动提供。例如 你有
Route::get('about',"homeController@about");
试试这条路线
Route::get('/about', [App\Http\Controllers\homeController::class,'about']);
或者你可以输入路由
Route::get('/about', 'App\Http\Controllers\homeController@about');
此外,您还可以检查控制器函数中的代码是否正确。
答案 6 :(得分:0)
您正在尝试 Laravel 7.x 和之前的路由架构。请参阅 8.x 文档。
新语法使用 as [HomeController::class, 'index']
或者您需要在 Controller
名称前添加命名空间,如 App\Http\Controllers\HomeController
。
答案 7 :(得分:-1)
请更新您的路线
使用App \ Http \ Controllers \ HomeController;
Route :: get('/ about',[HomeController :: class,'about']);