方法 App\Http\Controllers\HomeController::home 不存在。 [Laravel 8]
Posted
技术标签:
【中文标题】方法 App\\Http\\Controllers\\HomeController::home 不存在。 [Laravel 8]【英文标题】:Method App\Http\Controllers\HomeController::home does not exist. [Laravel 8]方法 App\Http\Controllers\HomeController::home 不存在。 [Laravel 8] 【发布时间】:2020-12-29 14:46:47 【问题描述】:我正在尝试使用 Laravel Auth 注册用户。首先我收到了App\User
未找到的错误,然后我用App\Models\User
修复它,它可以工作。我真的不知道 Laravel 8 有什么用,因为我在使用以前的版本注册用户时从来没有遇到过问题。然后我遇到了这个问题
BadMethodCallException 方法 App\Http\Controllers\HomeController::home 不存在。
我真的不知道要提供哪个代码,因为我什至没有触摸 Authentication/HomeController 的默认代码。
但我确实更改了 RouteProvider 中的命名空间
protected $namespace = 'App\Http\Controllers';
web.php
Route::get('/home', [HomeController::class,'home']);
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class HomeController extends Controller
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
$this->middleware('auth');
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
return view('home');
【问题讨论】:
您正在从主控制器中的路由调用主方法。您的家庭控制器中仅存在索引方法。首先创建家庭方法将解决您的问题。 感谢您指出这一点!我绝对想念索引方法。谢谢 这是你的答案吗? 【参考方案1】:试试Route::get('/home', [HomeController::class,'index']);
【讨论】:
【参考方案2】:在您的web.php
顶部您需要导入
use App\Http\Controllers\HomeController;
然后你可以使用
Route::get('/home', [HomeController::class,'index']);
否则
Route::get('/home', 'HomeController@index')->name('home');
这里用这个不用导入
注意 - 您的错误表明您的控制器中没有
home
方法,因此请创建home
方法或更改正确的method
默认为index
【讨论】:
谢谢!你用最好的方式解释了它!我的web.php
中已经有了命名空间,但我的路线中缺少index
。以上是关于方法 App\Http\Controllers\HomeController::home 不存在。 [Laravel 8]的主要内容,如果未能解决你的问题,请参考以下文章
GroovyGroovy 扩展方法 ( 扩展静态方法示例 | 扩展实例方法示例 | 扩展实例方法与扩展静态方法代码相同 )