![](/img/trans.png)
[英]Method App\Http\Controllers\HomeController::home does not exist. [Laravel 8]
[英]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.