簡體   English   中英

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

[英]Laravel 4: Controllers not working, only HomeController

我在使用L4的項目中遇到此“怪異”錯誤。

因此,如果在HomeController.php上具有以下內容:

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

然后在路由上調用它:

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

工作正常。

但是,如果我在控制器文件夾上創建一個名為MemberController.php的新控制器,並在嘗試調用它時執行完全相同的Hi()函數:

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

它返回...

BadMethodCallException
Method [Hi] does not exist.

我真的不知道這有什么問題。 我以前在其他項目中使用L4進行過工作,並且有很多控制器,但是從來沒有發生過。

該服務器運行在Nginx而非Apache上,因此沒有htaccess,但我認為這沒有任何區別。 L4已更新為最新版本。 有什么想法嗎?

我已經找到解決問題的方法,它與文件權限有關。

通過SSH安裝Laravel時,它具有完全的寫入/讀取權限-包括HomeController.php 此后,創建其他用戶僅具有laravel安裝的訪問權限后,就沒有必要的權限,從而導致該用戶在controllers文件夾上創建的任何文件均無法正確讀取。

我認為這幾乎不是解釋-我不是Linux專家,所以希望我沒有說錯-但是一旦我授予用戶權限,它就開始起作用。

對於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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM