我正在使用Laravel Spark,并且通过使用在特征中实现的范围来限制团队对模型的访问
namespace App\Scopes;
use Illuminate\Database\Eloquent\Scope;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Builder;
class TeamScope implements Scope
{
/**
* Apply the scope to a given Eloquent query builder.
*
* @param \Illuminate\Database\Eloquent\Builder $builder
* @param \Illuminate\Database\Eloquent\Model $model
* @return void
*/
public function apply(Builder $builder, Model $model)
{
$builder->where('team_id', '=',Auth()->user()->currentTeam->id );
}
}
我的问题是,当我运行数据库播种器时,它失败了,因为没有用户要进行身份验证。
播种机没有允许我登录特定用户的任何方法。
是否有一种方法可以在播种时禁用全局范围,或针对此问题的任何其他解决方案?
谢谢
答案 0 :(得分:0)
如果您要在种子内部调用模型,则可以先调用->withoutGlobalScopes()
“ {删除全局范围”部分的https://laravel.com/docs/5.7/eloquent#query-scopes中的详细信息。