首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Laravel中为不同的资源使用一个表

在Laravel中为不同的资源使用一个表
EN

Stack Overflow用户
提问于 2018-12-14 13:44:28
回答 2查看 2.1K关注 0票数 2

我试图在Laravel内部创建一个类似博客系统的东西。

我有一个名为articles的表以及抽象模型AbstractArctile

我还有三大类:

  • 新闻- App\Models\News\Article扩展App\Models\Abstract\AbstractArticle
  • 摘要- App\Models\Digests\Article扩展App\Models\Abstract\AbstractArticle
  • 离开主题- App\Models\Offtopic\Article扩展App\Models\Abstract\AbstractArticle

articles有一个名为分类的字段,有3种类型:新闻、摘要、主题之外。

除了扩展抽象模型之外,每个资源模型还定义了一个属性,即按以下方式定义的类别

代码语言:javascript
复制
/**
 * To which category this article belongs to
 * @var array
 */
protected $attributes = [
    'category'  =>  'news'
];

我在Nova中创建指定类别下的文章没有问题,但是,它没有显示来自指定类别的文章,而是在所有资源上显示来自所有类别的文章。

是否有一种方法仅在给定资源上显示特定类别的文章?

摘要

一个抽象模型-> 3资源扩展了该模型(定义了类别属性) ->,如何在nova资源中仅显示来自该类别的项?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-14 16:54:52

你可以利用拉拉维尔雄辩的查询范围

向所有3个模型(App\Models\News\ArticleApp\Models\Digests\ArticleApp\Models\Offtopic\Article)添加如下所示的全局范围,这是确保给定模型的每个查询都接收类别约束的简单方法。

代码语言:javascript
复制
protected static function boot()
{
    parent::boot();

    static::addGlobalScope('category', function (Builder $builder) {
        $builder->where('category', 'news'); // Change the value depends on the model
    });
}

希望这能帮到你。

票数 8
EN

Stack Overflow用户

发布于 2022-06-08 12:04:12

在Nova中,您也可以使用indexQuery、detailQuery和editQuery,并自定义资源结果。

https://nova.laravel.com/docs/4.0/resources/authorization.html#index-filtering

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

https://stackoverflow.com/questions/53780906

复制
相关文章

相似问题

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