我是Laravel框架的新手,我正在尝试在浏览器中加载一个简单的控制器,以便慢慢掌握这些内容。
我在laravel / app / controllers /文件夹中有一个名为users.php的文件,它看起来像这样:
class UsersController extends BaseController
{
public $restful = true;
public function action_index()
{
echo 'hi';
}
}
在routes.php文件中,我有
Route::get('users', 'UsersController@index');
但是,当我去
http://localhost:8888/laravel/public/users
我收到一条消息“GreeException 类UsersController不存在“
我不确定这是不是因为我没有安装PHP的mcrypt扩展。但是,当我检查MAMP上的php.ini文件时,它说它已启用。进入后
which PHP
在我的终端中,它说/ usr / bin / php。因此,它可能没有使用正确版本的PHP。
我不完全确定这是否是一个路由问题,或者它是否源于缺少重要的PHP扩展。
非常感谢!
答案 0 :(得分:3)
您需要使用Route :: controller方法来引用您的Controller:
Route::controller('test', 'TestController');
...并将您的文件(如Cryode提及)重命名为TestController.php
。
注意 - 如果您想将文件名用作test.php,则需要使用composer来更新自动加载设置。
最后,在Laravel 4中更改了Controller方法的名称格式,尝试重命名方法
public function action_index() {}
是
public function getIndex() {}
get
表示HTTP GET请求...同样适用于post
(HTTP POST)和any
(GET或POST ..)
答案 1 :(得分:2)
我不熟悉Laravel源代码的那部分,所以我不完全确定这是问题,但你的控制器文件名应该与控制器类名相匹配,包括大写。
因此users.php
应为UsersController.php
。现在,当我故意这样做时,我在include()
电话上收到“没有这样的文件或目录”错误,这就是为什么我不确定这是你问题的唯一原因。但这可能是一个开始。