“目标 [App\Http\Controllers\Controller] 不可实例化。”

Posted

技术标签:

【中文标题】“目标 [App\\Http\\Controllers\\Controller] 不可实例化。”【英文标题】:"Target [App\Http\Controllers\Controller] is not instantiable."“目标 [App\Http\Controllers\Controller] 不可实例化。” 【发布时间】:2015-10-05 17:45:39 【问题描述】:

我正在尝试学习有关 laravel 基础知识的 laracasts 教程,但是在安装 composer 和 laravel 没有问题后,我无法让我的路由文件与控制器一起使用我重新安装 laravel 完全复制了 laracasts 的内容,但是还是没有,有人看出这两个文件有什么问题吗?

routes.php 文件

<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/

Route::get('/', 'Controller@index');
Route::get('contact', 'Controller@contact');

controller.php 文件

<?php

namespace App\Http\Controllers;

use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;

abstract class Controller extends BaseController

    use DispatchesJobs, ValidatesRequests;

    public function ___construct()
    
        $this->middleware('guest');
    

    public function index()
    
        return 'hello world!';
    

    public function contact()
    
     return 'Contact me!';
    

如果有帮助的话,我使用 phps 服务器命令将它托管在 localhost:8888 上。

【问题讨论】:

【参考方案1】:

原因可能是您的控制器类是抽象的,因此它不可实例化。删除 abstract 关键字。

【讨论】:

希望他们有一个“喜欢”按钮 xD 我不是问xD的人【参考方案2】:

如果你的路由是 get 或 post 并且实际上你已经实现了资源,那么你会得到这种类型的错误

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于“目标 [App\Http\Controllers\Controller] 不可实例化。”的主要内容,如果未能解决你的问题,请参考以下文章