新控制器错误Laravel

时间:2016-08-28 13:15:54

标签: php laravel controller


我在学习Laravel 5的同时测试了一下,创建了一个新的控制器,但是我确实得到了一个奇怪的错误,它应该可以正常工作。这是:

我在 app / Http / Controllers / 目录中创建了一个新文件夹 Pages ,并将控制器 ContactController 添加到其中:
应用程序/ HTTP /控制器/ ContactController.php

<?php

namespace App\Http\Controllers\Pages;

use App\Http\Controllers\Controller;

class ContactController extends Controller {

    public function getIndex() {
        return 'This is the Contact page.';
    }
}

然后我在 routes / web 文件中创建了一条路线:
路由/ web.php

Route::controller('contact', 'Pages\ContactController');


奇怪的是,当我访问 / contact 网址时 - &gt; http://laravel.devpeaks.com/public/contact,我明白了:
compile.php第6271行中的BadMethodCallException: 方法控制器不存在。

2 个答案:

答案 0 :(得分:2)

Route::controller() was deprecated in 5.2 and was removed in 5.3。请尝试这条路线:

div

然后运行Route::resource('contact', 'Pages\ContactController'); 命令以确保所有路由都存在。

此外,您应该通过将Web服务器设置指向php artisan route:list目录而不是Laravel项目根目录来修复它。执行此操作后,请使用常规网址,例如public

答案 1 :(得分:2)

  1. 您应该以root目录指向/ public的方式调整nginx / apache配置。
  2. 自Liravel-5.2起,
  3. Route::controller已被弃用。您应该使用Route::resource并将名称从getIndex重命名为index。如果你使用Laravel-5.1只实现第一点。