我在学习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:
方法控制器不存在。
答案 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)
Route::controller
已被弃用。您应该使用Route::resource
并将名称从getIndex重命名为index。如果你使用Laravel-5.1只实现第一点。