laravel中实现文章过滤

本文介绍了一种在PHP框架中利用全局作用域实现文章状态过滤的方法。通过定义全局scope,可以根据文章的状态(未审核、审核成功、审核失败)来决定是否显示给用户。此外,还介绍了如何在需要时关闭此过滤器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、简介:文章有status字段,当status==0的时候,为未审核;当status==1,表示审核成功;当status==-1的时候表示审核不通过,同样可以作为删除

2、在文章的模型中Article.php,定义全局scope

protected static function boot()
    {
        parent::boot();
        static::addGlobalScope('available', function($query) {   // available为自己取得名
            return $query->whereIn('status', [0, 1]);   // 当状态为0和1时,用户都可见
        });
    }


这样就可以了


3、当不想过滤的时候,在控制器中获取文章时:

Article::withoutGlobalScope('available')

便可以获取全部的数据



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值