这个问题在这里已有答案:
所以我在boot()
中有一个AuthServiceProvider
,从数据库中读取一些Permission
s:
foreach (Permission::all() as $perm) {
Gate::define($perm->name, function ($user) use ($perm) {
return $user->hasPermission($perm->name);
});
}
唯一的问题是当我做migrate:fresh
一切都中断(有一个例外),因为,表,不存在。
如果表存在,我怎么能告诉Permission
模型只加载数据?
要回答被问到的问题,您可以使用:
if (Schema::hasTable('mytable')) {
}
另外,以这种方式从数据库注册门是一种反模式。服务提供商通常无法访问经过身份验证的用户,因为他们负责准备应用程序,并在对用户进行身份验证的会话中间件之前运行。还有许多其他方法可以构建authorization,不会导致像这样的问题。