Laravel控制器无法正常工作

时间:2013-09-05 18:00:07

标签: laravel laravel-4

我是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不存在“

enter image description here

我不确定这是不是因为我没有安装PHP的mcrypt扩展。但是,当我检查MAMP上的php.ini文件时,它说它已启用。进入后

which PHP

在我的终端中,它说/ usr / bin / php。因此,它可能没有使用正确版本的PHP。

我不完全确定这是否是一个路由问题,或者它是否源于缺少重要的PHP扩展。

非常感谢!

2 个答案:

答案 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()电话上收到“没有这样的文件或目录”错误,这就是为什么我不确定这是你问题的唯一原因。但这可能是一个开始。