0

如何隐藏十月 Rainlab 博客类别之一?其中一个类别不应显示在页面上的类别列表中。我只想使用一个隐藏类别来过滤和显示主页上的特殊帖子。有任何想法吗?

4

3 回答 3

0

选择多个类别的 ID。例子。

use App;
use October\Rain\Database\Builder;

[...other code ...]

public function boot(){

    \RainLab\Blog\Models\Category::extend(function($model) {
        // App::runningInBackend() you can also use this one to make sure it will 
        // execute on frontend only
        if(!App::runningInBackend()) {
            $model::addGlobalScope('id', function(Builder $builder) {
                $builder->where([
                    ['id', '!=', 2],
                    ['id', '!=', 3],
                    ['id', '!=', 4]
                ]);
            });            
        }
    });
}

现在不会显示id => 2,3,4的类别

于 2017-11-08T16:58:59.180 回答
0

我不确定这里的“隐藏”是什么意思。但我猜你不想在前端显示它(默认情况下)

您可以扩展Category模型来做到这一点。

如果您有相关插件/或/创建自己的插件并在Plugin.php文件中定义/覆盖引导方法,您可以定义类似这样的内容

use App;
use October\Rain\Database\Builder;

[...other code ...]

public function boot(){

    \RainLab\Blog\Models\Category::extend(function($model) {
        // App::runningInBackend() you can also use this one to make sure it will 
        // execute on frontend only
        if(!App::runningInBackend()) {
            $model::addGlobalScope('id', function(Builder $builder) {
                $builder->where('id', '!=', 2);
            });            
        }
    });
}

现在,在前端它不会显示具有id => 2的类别

可能这可以帮助您,如果您需要其他任何内容,请发表评论。有关插件相关的详细信息,您可以在此处查看:https ://octobercms.com/docs/plugin/registration

于 2017-11-08T06:10:02.637 回答
0

一个略短的版本,带有whereNotIn雄辩的方法

$builder->whereNotIn('id', [22, 32, 44]);

于 2017-12-21T18:27:02.040 回答