1

我需要在 Voyager 的“浏览”选项中仅显示来自 Web 登录用户的帖子。其他用户的帖子应该被隐藏。我是否需要为此制作其他控制器或编辑基于经过身份验证的用户的 voyagerbreadcontroller.php 查询?

在此先感谢您的帮助。

4

1 回答 1

0

这有效:

添加到register方法AppServiceProvider.php

$this->app->bind('TCG\Voyager\Models\Post', function ($app) {
    return new App\Post;
});

创建扩展 Voyager 模型的新模型,并使用条件 addGlobalScope:

<?php

namespace App;

use TCG\Voyager\Models\Post as VoyagerPost;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Auth;

class Post extends VoyagerPost
{
    /**
     * The "booting" method of the model.
     *
     * @return void
     */
    protected static function boot()
    {
        parent::boot();

                // Customize your own rule here!
        if (\Request::is('management/*') && Auth::user()->canBlogSolo()) { 
            static::addGlobalScope('author', function (Builder $builder) {
                $builder->where('author_id', '=', Auth::user()->id);
            });
        }
    }
}
于 2018-02-07T05:08:12.987 回答