2014-02-15 32 views
0

我正在開發一個應用程序,並且我剛開始將它推送到我的臨時服務器,以便在實時環境中對其進行測試,並遇到了一個奇怪的問題。控制器路由在部署時無法在Laravel中正常工作

所以我必須建立一個像這樣的路線:

// AJAX routes 
Route::controller('io', 'IoController'); 

而在IoController我有方法設置:

public function getSomeData() {} 
public function postSomeData() {} 

當我在我的開發環境(本地主機)上運行php artisan routes

GET /io/some-data 
POST /io/some-data 
GET /io/{_missing} 

但是在我的登臺服務器上,我只能得到:

GET /io/{_missing} 

當然,檢查路線app.com/io/some-data只是拋出一個'Controller method not found' exeption。

任何遇到類似問題並解決它們的人?我真的不知道爲什麼會發生這種情況,以及從哪裏開始尋找。

+0

當您的控制器名稱的大小寫定義完全相同時,非常重要 – 2014-02-15 10:33:43

回答

0

好像它升級Laravel時是一個問題。

在4.1之前,命名組不需要在URL中包含組名,但是在更新之後,一個指定的資源組預期組名在url中。

不知何故,我設法在分段和開發環境中有不同的版本(在composer.json中使用dev-branch的愚蠢版本)。

1

您的控制器操作必須正確映射到您的路由路徑。 那個錯誤信息告訴你這一點 - 沒有方法連接到你的路徑。默認情況下,Laravel使用足智多謀的路線,你的路徑被映射到列出的被命名爲這樣的動作:

  • 指數與HTTP GET方法
  • 使用HTTP GET方法
  • 存儲與HTTP POST方法創建
  • 顯示與HTTP GET方法
  • 與編輯HTTP GET方法
  • 用HTTP PUT方法更新
  • 刪除以http毀滅我THOD

您可以創建自定義的方法,但你必須要明確有關,並告訴路線在哪裏可以找到這些行動,就像這樣:

Route::get("path","[email protected]"); 

在大多數情況下,我會建議使用優秀Jeffrey Ways generators package

哪一個會用一個命令爲你生成整個資源;包括遷移,模型,控制器,動作......

而且你可以使用的資源是這樣的:

Route::resource("path","SomeController"); 
相關問題