我有一个名为project的模型,可以将其归档。存档的项目不会显示在索引页面上,而我可以通过在Project模型上使用全局作用域来实现:
class ArchiveScope implements Scope
{
public function apply(Builder $builder, Model $model)
{
$builder->where('archived', false);
}
}
然后在Project模型中,我有:
protected static function boot()
{
parent::boot();
static::addGlobalScope(new ArchiveScope);
}
但是,我有一个页面显示所有已归档的项目,用户应该能够单击每个项目,查看内容,并在需要时取消归档项目。但是由于全局范围,它将不会显示该项目。当我转到/ projects / {project_id}的存档项目时,它给我404 not found错误。没有GlobalScope的情况下如何申请Project的show操作?
谢谢。
答案 0 :(得分:4)
你可以做到
client
答案 1 :(得分:0)
那是你的事:https://laravel.com/docs/7.x/eloquent
如果要删除所有全局范围:
Model::withoutGlobalScopes()->get();
或者如果您要删除其中一些:
Model::withoutGlobalScopes([
Model1::class, Model2::class, etc...
])->get();
就您而言,您可以只写:
Project::withoutGlobalScope(ArchiveScope::class)->get();