【问题标题】:Laravel 5.6 - fat Model, skinny ControllerLaravel 5.6 - 胖模型,瘦控制器
【发布时间】:2018-06-22 17:21:34
【问题描述】:

在一个很基础的例子上尝试理解Laravel开发的fat Model、skinny Controller原理。


第一个示例我想检索所有帖子。在 PostController 我可以写:

public function index() {
    $posts = Post::orderBy('updated_at', 'desc')->get();
    return view('home', compact('posts') );
}

并获取所有帖子。


第二个示例:在 Post 模型中:

public function readAllPosts() {
    return $this->orderBy('updated_at', 'desc')->get();
}

后控制器:

public function index() {
    $post = new Post;
    return view('home', [
        'posts' = > $post->readAllPosts()
    ]);
}

它是否正确,真正的区别是什么?

【问题讨论】:

    标签: laravel laravel-5.6


    【解决方案1】:

    您可以直接从模型中检索,而无需通过将函数设为静态来实例化类。例如,您要返回一个有序的帖子集合。

    后模型:

    public static function getOrdered() {
        return Post::get()->orderBy('updated_at', 'desc');
    }
    

    后控制器:

    public function index() {
        return view('home', [
            'posts' = > Post::getOrdered()
        ]);
    }
    

    这背后的想法是您在数据库逻辑和控制器逻辑之间分离关注点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-25
      • 2015-04-24
      • 1970-01-01
      • 2010-10-02
      • 2012-02-02
      • 1970-01-01
      • 2011-07-06
      • 2016-11-21
      相关资源
      最近更新 更多