2014-10-01 103 views
2

我只想知道在我的PostController中創建構造函數是否可以?Laravel 4控制器構造函數

例1:

public class PostController extends BaseController 
{ 
    protected $posts; 

    //Is this ok? 
    public function __construct(Post $posts){ 
     $this->posts = $posts; 
    } 

    public function getPosts(){ 

     $posts = $this->posts->all(); 

     return View::make('get-index',compact('posts')) 

    } 
} 
+0

任何理由,你爲什麼認爲它不應該是什麼?雖然'$ this-> posts = $ posts;'在你的構造函數中是沒有意義的 – 2014-10-01 08:26:19

+0

你確實可以使用構造函數。然而,Laravel喜歡使用稱爲依賴注入的東西來初始化控制器。你應該添加一個參數到你的控制器的構造函數中,如下所示:'public function __construct(Post $ post){' – Jonathon 2014-10-01 08:27:01

+0

當然,我忘了給它發佈obj作爲參數:) – Spoofy 2014-10-01 08:27:45

回答

0

沒事在你的控制器使用的構造函數。您可以利用Laravel的依賴注入和IoC容器,以便您的應用程序更易於測試並易於維護。

泰勒對DI和IoC容器做了很好的說明。您可以觀看以下視頻的詳細信息:

  1. http://vimeo.com/53009943
  2. http://vimeo.com/53029232