Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >显示每个类别的最后一篇文章

显示每个类别的最后一篇文章
EN

Stack Overflow用户
提问于 2018-01-02 06:45:21
回答 3查看 1.1K关注 0票数 2

我有两个模型Post和Category

//迁移post

代码语言:javascript
运行
AI代码解释
复制
public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->increments('id');
        $table->string('title');
        $table->string('body');
        $table->string('image');
        $table->integer('category_id')->unsigned();
        $table->foreign('category_id')->references('id')->on('categories');
        $table->timestamps();
    });
}

//迁移类别

代码语言:javascript
运行
AI代码解释
复制
public function up()
{
    Schema::create('categories', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->timestamps();
    });
}

如何才能在主页中只显示每个类别的最后一篇文章?

EN

回答 3

Stack Overflow用户

发布于 2018-01-02 06:53:19

Hiren很接近,但你需要从类别中删除,因为你的post属于category

代码语言:javascript
运行
AI代码解释
复制
$category->posts()->latest()->first();

或者,您可以向后工作:

代码语言:javascript
运行
AI代码解释
复制
$post = Post::latest()->whereHas('category', function($q) use($category_id) {
    return $q->where('id', $category_id);
})->first();

为了让它起作用,你需要定义你的模型关系:

Category Model需要此函数:

代码语言:javascript
运行
AI代码解释
复制
public function posts() 
{
    return $this->hasMany(App\Post::class);
}

Post模型需要这个函数:

代码语言:javascript
运行
AI代码解释
复制
public function category()
{
    return $this->belongsTo(App\Category::class);
}

为了响应Alexey Mezenin,我们只需将一个回调传递给with(),以定义我们想要为每个类别拉入哪些帖子,并执行正确的eager load

代码语言:javascript
运行
AI代码解释
复制
Category::with(['posts' => function($q) {
    return $q->latest()->first();
})->get(); 
票数 3
EN

Stack Overflow用户

发布于 2018-01-02 07:30:01

加载最新帖子类别的一个有效解决方案是在Category模型中创建一个额外的hasOne()关系:

代码语言:javascript
运行
AI代码解释
复制
public function latestPost()
{
    return $this->hasOne(Post::class)->latest();
}

然后使用eager loading

代码语言:javascript
运行
AI代码解释
复制
Category::with('latestPost')->get();

这将只向DB生成2个查询。

票数 1
EN

Stack Overflow用户

发布于 2018-09-11 16:15:08

代码语言:javascript
运行
AI代码解释
复制
public function up()
{
    Schema::create('news', function (Blueprint $table) {
        $table->increments('id');
        $table->string('slug')->unique();
        $table->unsignedInteger('author_id');
        $table->unsignedInteger('category_id');
        $table->string('subject');
        $table->text('short');
        $table->text('content');
        $table->integer('view')->default(0);
        $table->integer('status')->default(0);
        $table->string('image');
        $table->timestamps();

        $table->foreign('author_id')
              ->references('id')->on('users')
              ->onDelete('cascade');
        // $table->foreign('category_id')
        //       ->references('id')->on('categories')
        //       ->onDelete('cascade');
    });
    // Schema::enableForeignKeyConstraints();
}
public function up()
{
    Schema::create('categories', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name')->unique();
        $table->timestamps();
    });
}

在contoller:

代码语言:javascript
运行
AI代码解释
复制
    $latestpostlist = News::whereIn('created_at',function($query){
            $query->select(DB::raw('max(created_at)'))
                      ->from('news')
                      ->groupBy('category_id');
    })->get();

在你的情况下,新闻将被张贴。这个查询对我很有效

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

https://stackoverflow.com/questions/48056649

复制
相关文章
CVPR 2019一篇非常特别的文章
https://www.zhihu.com/question/313967271
AI算法与图像处理
2019/10/15
1.1K0
这是一篇论文级别的VR科普文章
有幸拿到了Pico 3 企业版本和L同学的Oculus Quest 2,在体验之余不妨写一篇杂文来聊聊VR这个看着不新但是又很新的东西。
云深无际
2022/11/29
1.1K0
这是一篇论文级别的VR科普文章
wordpress文章显示同一分类下的上一篇下一篇
  我们在用wordpress开发网站的时候会在文章页中引入上一篇下一篇,但是发现新闻页的上下文章有可能是产品分类的post,这个就不太合理,如何显示同一分类下的上一篇下一篇文章呢?随ytkah一起来看看
ytkah
2019/11/10
9520
节前最后一篇文章,祝大家国庆快乐
本文是 mybatis-xmlreload 项目最新 3.0.5.m3 版本的更新介绍以及使用文档
wayn
2023/09/28
2030
节前最后一篇文章,祝大家国庆快乐
一篇文章搞懂人脸识别的十个概念
人脸技术基本概念介绍 1. 人脸检测   “人脸检测(Face Detection)”是检测出图像中人脸所在位置的一项技术。   人脸检测算法的输入是一张图片,输出是人脸框坐标序列(0个人脸框或1个人脸框或多个人脸框)。一般情况下,输出的人脸坐标框为一个正朝上的正方形,但也有一些人脸检测技术输出的是正朝上的矩形,或者是带旋转方向的矩形。   常见的人脸检测算法基本是一个“扫描”加“判别”的过程,即算法在图像范围内扫描,再逐个判定候选区域是否是人脸的过程。因此人脸检测算法的计算速度会跟图像尺寸、图像内容相
小莹莹
2018/04/24
1.5K1
一篇文章搞懂人脸识别的十个概念
Jekyll x Liquid 控制文章列表只显示特定类别的Post
这个也很简单, 只需要立一个 Flag循环判断是否含有这个 Tag 就行 o(
szhshp
2022/08/15
4810
一篇文章搞懂人脸识别的十个概念
作者:汪铖杰 首发于 腾讯云技术社区 量子位 已获授权编辑发布 优图实验室研究人脸技术多年,不仅在技术方面有很好的积累,而且在公司内外的业务中有众多应用。笔者作为优图实验室人脸研究组的一员,在与产品、商务、工程开发同事交流过程中发现:不管是“从图中找到人脸的位置”,或是“识别出这个人脸对应的身份”,亦或是其他,大家都会把这些不同的人脸技术统称为“人脸识别技术”。 因此,笔者整理了一些常见人脸技术的基本概念,主要用于帮助非基础研究同事对人脸相关技术有一个更深入的了解,方便后续的交流与合作。 人脸技术基本概念介
量子位
2018/03/29
9080
一篇文章搞懂人脸识别的十个概念
一篇文章搞懂人脸识别的十个概念
汪铖杰
2017/06/20
11.1K6
一篇文章搞懂人脸识别的十个概念
一篇文章带你了解Hashtable类
1.Hashtable类描述的是散列表,也称哈希表,它通过映射集合的方式,将一个元素通过其关键字与其存储位置相关联。散列表使用关键字查找元素,而不是使用线性搜索技术来查找元素,从而使查找性能大幅度提升。
Java进阶者
2022/01/18
2950
一篇文章带你了解Hashtable类
一篇文章带你搞懂Python中的类
今天我们要说的是面向对象的核心-----类,类能帮我们把复杂的事情变得有条理,有顺序,希望大家通过学习类能改善自己的编码风格,使代码变得更为好看,更加通俗易懂。
Python进阶者
2021/05/20
3980
一篇文章讲清面向对象的UML类图
从定义上看可能有点抽象,说白了就是一种由图表组成的标准化建模语言,一般我们理解的语言都是由文字组成,而这种统一建模语言是由图表组成的。我们知道开发一个软件系统,不光只有程序员参与,另外还有分析师、设计师、测试人员等等,为了让不同人能够理解交流这个软件系统,就诞生出了这么一套语言。我们说过这个语言是有图表组成的,这里的图表有好几种类型,最常用的有:用例图、类图、序列图、状态图、活动图、组件图和部署图等。由于本文主要讲解类图,其他就不深入了解了,感兴趣的同学可以上网搜索这方面的内容。
lyb-geek
2019/06/20
1.5K0
一篇文章讲清面向对象的UML类图
一篇文章告诉你什么是 Python 元类
. 龟叔发明了 Python,然后集成了一堆概念在这门语言里面,比如:迭代器,装饰器,函数,生成器,类,对象,协程等等。 这些概念对初学者似乎没一个好懂的,不过还有比这更难的概念,它是 Python 世界中的造物主,虽然我们很少去直接使用它,但天天都在用,它就是今天的主角------元类。 今天我的任务就是彻底明白什么是元类,看懂了别忘了给我点个赞,分享给更多人。 要搞懂元类,我们还是先从对象说起。 对象(Object) Python 一切皆对象,这句话你一定有听说过(现在你就听说了),一个数字是对象,
企鹅号小编
2018/02/02
5870
一篇文章告诉你什么是 Python 元类
一篇文章带你了解Hashtable类中的方法
Hashtable类描述的是散列表,也称哈希表,它通过映射集合的方式,将一个元素通过其关键字与其存储位置相关联。散列表使用关键字查找元素,而不是使用线性搜索技术来查找元素,从而使查找性能大幅度提升。
Java进阶者
2022/01/18
2200
一篇文章带你了解Hashtable类中的方法
一篇文章掌握lambda,function下41个类
Java8 发布以来,lambda 表达式简化了代码,增强了阅读性,代码更加简洁。lambda 主要是给Java增加了函数式编程的方式。lambda表达式的实现就是functionInterface。
香菜聊游戏
2021/05/26
4310
一篇文章掌握lambda,function下41个类
一篇文章带你搞定StringBuffer类和常用方法
1.我们知道字符串是常量,一旦被创建后,它的内容和长度值是不能够改变的,当需要对一个字符串进行修改,只可以再创建,这样就有点麻烦,可以使用StringBuffer类来解决这个问题,修改它的内容和长度。它是一个容器,可以添加和删除,此时不会产生新的StringBuffer对象。
Java进阶者
2021/03/25
6170
宋宝华:递归的出口在哪里? (除夕创作年度最后一篇文章)
迭代的是人,递归的是神。递归的出口,在于停止递归。当递归函数在某条件成立后不再调用自身,即意味着递归会终止。
Linux阅码场
2019/10/08
6580
宋宝华:递归的出口在哪里? (除夕创作年度最后一篇文章)
一篇文章带你了解CSS Pseudo-classes(伪类 )
CSS伪类选择器根据其他条件匹配组件,而不一定由文档树定义。CSS 伪类 是添加到选择器的关键字,指定要选择的元素的特殊状态。
前端进阶者
2021/01/22
2K0
Wordpress显示所有文章
使用下面loop只能展示当前分类下的文章 <?php if(have_posts()): ?> <?php while(have_posts()):the_
切图仔
2022/09/14
7450
typecho文章倒序显示
最近在处理一个主题的时候刚好需要实现一下让博客首页文章目录把最新增加的文章放到最下面,所以查看了一下代码。 很明显,在输出文章时,有一个DESC,将他改为ASC即可 操作 找到/var/Widget/Archive.php文件中的 /** 仅输出文章 */ $this->_countSql = clone $select; $select->order('table.contents.created', Typecho_Db::SORT_DESC) ->page($this->_currentPage,
乐心湖
2020/07/31
1.4K0
点击加载更多

相似问题

显示wordpress中每个类别的第一篇/最后一篇文章

21

WordPress -显示所有类别的最后一篇文章

24

如何显示每个类别的最后三篇文章?

10

通过AJAX显示WordPress最后一篇文章

23

PHP - Wordpress前一篇文章链接显示在最后一篇文章中

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文