当前位置: 首页 > 知识库问答 >
问题:

拉拉维尔。在具有关系的模型中使用scope()

薛墨一
2023-03-14
$categories = Category::with('posts')->published()->get();
class Category extends \Eloquent
{
    public function posts()
    {
        return $this->HasMany('Post');
    }
}

职位:

class Post extends \Eloquent
{
   public function category()
   {
       return $this->belongsTo('Category');
   }


   public function scopePublished($query)
   {
       return $query->where('published', 1);
   }

}

共有1个答案

程俊誉
2023-03-14

您可以内联进行:

$categories = Category::with(['posts' => function ($q) {
  $q->published();
}])->get();

您还可以定义一个关系:

public function postsPublished()
{
   return $this->hasMany('Post')->published();
   // or this way:
   // return $this->posts()->published();
}

后来呢:

//all posts
$category->posts;

// published only
$category->postsPublished;

// eager loading
$categories->with('postsPublished')->get();
 类似资料:
  • 用户标签 部门表 部门用户表 员额表 user.php 部门php post.php 我需要从部门用户获得所有职位 我在邮政局做了调查。php 我的查询 错误 SQLSTATE[42S22]:未找到列:1054未知列“部门用户”。“where子句”(SQL:选择count(*)中的post_id“作为存在位置的

  • 是否可以在比1级更深的级别上进行具有雄辩能力的多级关系查询?我的桌子是这样的: post_comments- 发表评论或回复- 使用者- 用户数据- 所以我想问是不是有可能得到一个帖子的评论与所有的回复和用户数据的人谁回答了评论1查询与雄辩。 这就是我的评论模型的样子: 当我得到一条评论的所有用户数据时,我想得到回复者的所有用户数据。我真的很抱歉,如果这个问题已经在其他地方发布或记录,但我似乎无法

  • 在Laravel中,有可能把关系放在关系中吗? 我的两个模型: 商店 供应商 我的商店和供应商关系模型: null 正如您所看到的,我有许多商店和供应商,每个都可以通过SupplierStore表相互关联。 这很好用。 我的问题是,对于每一个关系(商店和供应商),可能有许多交货日。 我想如果我进入SupplierStore模型并添加: 会工作,但我似乎没有办法通过雄辩来访问这些数据? 我希望做这样

  • 基本上,我试图在用户、post和回复数据库之间建立一种关系。以下是模型:注释模型 答复方式: 主要代码: 当我进入评论页面时,我得到以下错误: 未定义的属性:照亮\数据库\雄辩\关系\属于::$name。 这是我第一次使用关系,所以我查看了Laravel文档,但仍然不知道我做错了什么。基本上,我试图从用户数据库中获取用户名(使用comments user_id作为外键),获取评论详细信息(body

  • 我需要关于laravel API的明确信息。 我一直在阅读很多关于 laravel API 的文章。除了在JWT和laravel-passport之间进行选择(这是一个完全不同的混淆程度),我需要获取有关laravelAPI的基本信息,以便让我更清楚地了解什么是什么。 为什么laravel护照需要数据库(这些表的用途是什么) 如果我在authProvider文件中将auth驱动程序更改为passp

  • 所以我正在尝试为我的网站实现一个支付解决方案,经过相当多的研究,我仍然缺乏一个完整的解决方案。我正在运行Laravel 5.0,需要一般购物车付款功能。我想我会发布这篇文章,试图创建一个参考,以帮助其他可能有这个问题的人。我已经把测试事务放到了Paypal的沙箱中,这似乎是砖墙的所在,但是一个完整的概述会很有帮助。我将列出我需要克服的问题,以便解决一些问题。 完成支付解决方案实施需要解决的问题 >