Laravel - 如果表存在,则仅查询模型[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

所以我在boot()中有一个AuthServiceProvider,从数据库中读取一些Permissions:

    foreach (Permission::all() as $perm) {
        Gate::define($perm->name, function ($user) use ($perm) {
            return $user->hasPermission($perm->name);
        });
    }

唯一的问题是当我做migrate:fresh一切都中断(有一个例外),因为,表,不存在。

如果表存在,我怎么能告诉Permission模型只加载数据?

php laravel laravel-5
1个回答
2
投票

要回答被问到的问题,您可以使用:

if (Schema::hasTable('mytable')) {

}

另外,以这种方式从数据库注册门是一种反模式。服务提供商通常无法访问经过身份验证的用户,因为他们负责准备应用程序,并在对用户进行身份验证的会话中间件之前运行。还有许多其他方法可以构建authorization,不会导致像这样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.