首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >学习WardrobeCMS源代码,它们如何在没有db请求的情况下检索帖子?

学习WardrobeCMS源代码,它们如何在没有db请求的情况下检索帖子?
EN

Stack Overflow用户
提问于 2014-02-19 01:54:50
回答 1查看 119关注 0票数 0

新手来了。我正在学习拉拉维尔和WardrobeCMS是一个很好的研究海事组织。只是想知道你们能不能告诉我他们是如何用请求分局检索帖子的?

在主页中,HomeController有这一行。

代码语言:javascript
运行
复制
$posts = $this->posts->active(Config::get('core::wardrobe.per_page'));

在WardrobeServiceProvider中,它们将PostRepoitory与DbPostRepository绑定,下面是它们的“活动”方法。

代码语言:javascript
运行
复制
public function active($per_page)
{
    $per_page = is_numeric($per_page) ? $per_page : 5;

    \Debugbar::info('calling posts active method');

    return Post::with(array('tags', 'user'))
        ->where('active', 1)
        ->where('publish_date', '<=', new DateTime)
        ->orderBy('publish_date', 'desc')
        ->paginate($per_page);
}

返回语句看起来像雄辩的命令,但是,我在Debugbar控制台中没有看到任何db请求。这是怎么回事?请给我建议。

我是一个设计师,试图学习编码和拉拉维尔‘照亮’我。在我当前的dev项目中,每个页面都有大约4-10 db的调用。我的目标是尽可能减少db调用,我认为WardrobeCMS源代码是我的出发点。

EN

回答 1

Stack Overflow用户

发布于 2014-02-20 01:36:44

代码语言:javascript
运行
复制
Post::with()->where()->paginate(); doesn't always 'call' database?

:是的,是的!

Post是一个Eloquent 奥姆,因为基本上Laravel中的每个模型(即Post)都扩展了Eloquent/Model类,而这个Eloquent/Model类与其他类一起使用Query Builder (在您的情况下是DB)类来查询数据库,在您的示例中,Post是这样的:

代码语言:javascript
运行
复制
class Post extends Eloquent {
    // ...
}

SInce Post类扩展了Eloquent类,以便Post能够访问(仅限于受保护的和公共的) Eloquent类的所有方法,因此,如果Eloquent具有这样的函数/方法(实际上有):

代码语言:javascript
运行
复制
public function with($relation)
{
    //...
}

然后,Post类可以像这样调用该函数/方法:

代码语言:javascript
运行
复制
Post::with()

所以,在本例中,实际上Post::with()->where()->paginate()调用与database交互,但没有必要每个数据库交互都必须使用DB::table(),相反,这是使用ORM查询数据库的一种方便的方式,不要忘记,ORM只是查询生成器的包装器,在场景后面,Post Eloquent Model使用查询生成器。

您应该使用手册,而不是阅读其他应用程序的源代码,一旦您了解了基本概念,您就可以阅读其他Laravel应用程序的源代码,以获得其他开发人员使用的一些想法。

Update: --如果您在调试器中没有看到任何查询,那么应用程序将在一段时间内使用Laravel的缓存特性缓存数据库查询,这样它就可以在不与数据库交互的情况下使用这些查询来加快进程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21869432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档