Laravel控制器不工作

Laravel控制器不工作,laravel,laravel-4,Laravel,Laravel 4,我对Laravel框架非常陌生,正在尝试在我的浏览器中加载一个简单的控制器,以便慢慢掌握窍门 我在laravel/app/controllers/文件夹中有一个名为users.php的文件,它看起来像这样: class UsersController extends BaseController { public $restful = true; public function action_index() { echo 'hi'; } }

我对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
我收到一条信息,上面写着ReflectionException 类UsersController不存在

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

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

我不完全确定这是一个路由问题,还是因为缺少重要的PHP扩展


非常感谢

您需要使用Route::controller方法引用控制器:

Route::controller('test', 'TestController');
…并将Cryode提到的文件重命名为TestController.php

注意-如果要将文件名用作test.php,则需要使用更新自动加载设置

最后,在Laravel 4中更改了控制器方法的名称格式,请尝试重命名该方法

public function action_index() {}
将来


get表示HTTP get请求。。。这同样适用于post HTTP post和任何GET或post

您需要使用Route::controller方法引用控制器:

Route::controller('test', 'TestController');
…并将Cryode提到的文件重命名为TestController.php

注意-如果要将文件名用作test.php,则需要使用更新自动加载设置

最后,在Laravel 4中更改了控制器方法的名称格式,请尝试重命名该方法

public function action_index() {}
将来


get表示HTTP get请求。。。这同样适用于post HTTP post和任何GET或post

我不熟悉Laravel源代码的这一部分,因此我不能完全确定这是否是问题所在,但您的控制器文件名应该与控制器类名匹配,包括大写字母


因此users.php应该是userscoontroller.php。现在,当我自己故意这样做时,我在一个include调用中得到了一个没有这样的文件或目录错误,这就是为什么我不能确定这是您的问题的唯一原因。但这可能只是一个开始。

我不熟悉Laravel源代码的这一部分,因此我不能完全确定这是否是问题所在,但您的控制器文件名应该与控制器类名匹配,包括大写字母


因此users.php应该是userscoontroller.php。现在,当我自己故意这样做时,我在一个include调用中得到了一个没有这样的文件或目录错误,这就是为什么我不能确定这是您的问题的唯一原因。但这可能是一个开始。

表示找不到命令。在引入新类之后,必须更新类,这又是什么呢?为什么Laravel又比CodeIgniter好呢?对不起,我对添加新类后更新类的看法是错误的。。这不适用于这里-我将更新上述内容。你仍然需要改变你的方法names@Lance您的问题是使用Route::get。。看一看above@Lance澄清并测试了关于作曲家的观点,更新后的Lavel在很多方面都更好,其他方面也一样。使用适合您的项目的选项。表示未找到命令。在引入新类之后,必须更新类,这又是什么呢?为什么Laravel又比CodeIgniter好呢?对不起,我对添加新类后更新类的看法是错误的。。这不适用于这里-我将更新上述内容。你仍然需要改变你的方法names@Lance您的问题是使用Route::get。。看一看above@Lance澄清并测试了关于作曲家的观点,更新后的Lavel在很多方面都更好,其他方面也一样。使用适合你的项目。