Laravel 4:控制器不工作,只有HomeController

时间:2014-03-19 14:25:37

标签: php laravel

我在使用L4的项目中遇到了这个“奇怪”错误。

所以,如果我在HomeController.php上有以下内容:

public function Hi()
{   
echo 'simple test';
}

然后在路线上拨打电话:

Route::get('hi', array('as' => 'hi', 'uses' => 'HomeController@Hi'));

工作正常。

但是,如果我在controllers文件夹上创建一个名为MemberController.php的新控制器并执行完全相同的Hi()函数,当我尝试调用它时:

Route::get('hi', array('as' => 'hi', 'uses' => 'MemberController@Hi'));

它返回......

BadMethodCallException
Method [Hi] does not exist.

我真的不知道这有什么问题。我之前曾在其他项目中使用L4,有许多控制器,这种情况从未发生过。

这个服务器在Nginx而不是Apache上运行,所以没有htaccess,但我不认为这有任何区别。 L4更新为上一版本。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法,它与文件权限有关。

通过SSH安装Laravel时,它具有完全的写/读权限 - 包括HomeController.php。之后,创建其他用户只能访问laravel安装,这使得没有必要的权限导致该用户在控制器文件夹上创建的任何文件都没有被正确读取。

我认为这几乎不是解释 - 我不是Linux上的专家,所以希望我没有说错 - 但是一旦我给了用户权限它开始工作。

答案 1 :(得分:-1)

对于linux打开\ etc \ hosts放这行。

yourserverip   yourlaravel.com

我认为您的虚拟主机未在httpd.conf中设置。你可以尝试一下,看看它是否有效: 对于Linux

NameVirtualHost *:80
<VirtualHost *:80>
    ServerName yourlaravel.com
    DocumentRoot "/var/www/laravel/public"
    <Directory "/var/www/laravel/public">
 </Directory>

<VirtualHost *:80>
   ServerName localhost
   DocumentRoot "/var/www"
   <Directory "/var/www">
   </Directory>
</VirtualHost>