隐藏10月Rainlab博客类别之一?

时间:2017-11-08 00:25:13

标签: laravel octobercms octobercms-plugins

如何隐藏 10月Rainlab博客类别之一? 其中一个类别不应显示在页面上的“类别列表”中。 我想使用一个隐藏类别仅用于过滤并在HomePage上显示特殊帖子。 有什么想法吗?

3 个答案:

答案 0 :(得分:0)

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

您可以扩展类别模型来执行此操作。

如果您有相对插件/或/创建自己的插件并在 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

答案 1 :(得分: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-

答案 2 :(得分:0)

使用 whereNotIn 雄辩的方法

的简短版本

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