我需要在 Voyager 的“浏览”选项中仅显示来自 Web 登录用户的帖子。其他用户的帖子应该被隐藏。我是否需要为此制作其他控制器或编辑基于经过身份验证的用户的 voyagerbreadcontroller.php 查询?
在此先感谢您的帮助。
这有效:
添加到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);
});
}
}
}