【问题标题】:Laravel 4 Controller constructorLaravel 4 控制器构造函数
【发布时间】:2014-10-01 08:23:28
【问题描述】:

我只是想知道在我的 PostController 中创建构造函数是否可以?

示例 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'))

  }
}

【问题讨论】:

  • 您认为它不应该是什么原因?尽管构造函数中的$this->posts = $posts; 毫无意义
  • 您确实可以使用构造函数。然而,Laravel 喜欢使用称为依赖注入的东西来初始化控制器。您应该像这样向控制器的构造函数添加一个参数:public function __construct(Post $post) {
  • 当然我忘了给它 Post obj as param :)

标签: php laravel-4 controller


【解决方案1】:

在 Controller 中使用构造函数是可以的。你可以利用 Laravel 的 Dependency Injection 和 IoC Container,这样你的应用程序将更易于测试和易于维护。

Taylor 对 DI 和 IoC 容器做了很好的解释。您可以观看以下视频了解详细信息:

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

【讨论】:

    猜你喜欢
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多