2013-02-03 146 views
0

我試圖得到基於以下結構中Laravel 4嵌套控制器:Laravel 4.0嵌套控制器

  • 應用
    • 控制器
        • BaseController.php
      • 網站
        • WebsiteController.php

我想獲得網站路線與WebsiteController擴展BaseController關聯。

我已經嘗試以下的事情

爲route.php應用程序/ route.php

Route::resource('website', 'Controllers\Website\WebsiteController'); 

爲BaseController.php應用程序/控制器/base/BaseController.php

use Illuminate\Routing\Controllers\Controller; 
class BaseController extends Controller { 

    protected function setupLayout(){ 
     if (! is_null($this->layout)){ 
      $this->layout = View::make($this->layout); 
     } 
    } 
} 

爲WebsiteController.php應用程序/控制器/網站/ WebsiteController.php

use Controllers\Base\BaseController; 
class WebsiteController extends BaseController { 
    public function index(){ 
     return 'index'; 
    } 
} 

不幸的是,當我去http://mywebsite.com/website它不工作的。

謝謝。

+0

您會得到什麼錯誤? – fideloper

+0

Erreur HTTP 500(內部服務器錯誤) –

+0

謝謝。有沒有可以在這裏打印出來的堆棧跟蹤或相關消息? – fideloper

回答

1

如果沒有錯誤轉儲,我們不能確切知道,但你可以嘗試這些:

1)運行作曲家的自卸自動加載,所以新類的自動加載器知道:

$ php composer.phar dump-autoload 

2)我不相信你需要使用use Controllers\Base\BaseController指令,因爲模型目錄默認是自動加載的。由於您不是名稱 - 以不同的方式控制您的控制器,所以不應該需要use指令。上述「轉儲自動加載」應該做的伎倆

3)傾卸式自動加載後,改變

Route::resource('website', 'Controllers\Website\WebsiteController'); 

這樣:

Route::resource('website', 'WebsiteController'); 

您使用特定類別的(例如「 Controllers \ Website \ WebsiteController')將不是必需的,除非您爲新控制器定義了不同的名稱空間

+0

事件與轉儲自動加載和改變路線它仍然不工作。 我已經通過擴展網站控制器與控制器(取消baseController步驟)簡化代碼 但事件像它仍然顯示錯誤500 –