新的控制器错误Laravel


new controller mistake Laravel


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

我在app/Http/Controllers/目录中创建了一个新文件夹Pages,并将控制器ContactController添加到其中:
app/Http/Controllers/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文件中创建了一个路由:
routes/web.php

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


奇怪的是,当我访问/contactURL->http://laravel.devpeaks.com/public/contact,我得到:
compiled.php第6271行出现BadMethodCallException:方法控制器不存在。

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

Route::controller()在5.2中被弃用,在5.3中被删除。试试这个路线:

Route::resource('contact', 'Pages'ContactController');

然后运行php artisan route:list命令以确保所有路由都存在。

此外,您应该通过将其指向public目录而不是Laravel项目根目录来修复web服务器设置。完成此操作后,请使用像domain.com/contact这样的普通URL。