php - Singleton 在 Laravel 中反复运行
问题描述
当我的 Laravel 应用程序第一次运行时,我想将我的模型的一些实体添加到数据库中。为此,我使用单例:
AppServiceProvider.php
public function boot()
{
$this->app->singleton(InitializeRoles::class, function() {
return new InitializeRoles();
});
}
还有我的 InitializeRoles.php:
class InitializeRoles
{
public function __construct()
{
\App\Role::create(['name' => 'owner'])->save();
\App\Role::create(['name' => 'moderator'])->save();
}
}
但是,当添加对数据库的查询时,下次刷新我的网站时会Duplicate entry 'owner' for key
出错,因为该name
字段是唯一的。为什么角色模型的实例被一次又一次地创建?为什么单例类不只运行一次?
解决方案
推荐阅读
- phpmyadmin - 当我在 phpmyadmin 上建立连接时,他更改了我的 url 端口
- ios - MessageInputBar 在点击输入栏后消失
- javascript - Web Firestore - 将 Double 值保存到 Firebase
- dom - 如何在 vscode 扩展(电子)中访问 window.crypto?
- r - R中的重复大括号
- java - java.lang.OutOfMemoryError: Java heap space 生成pdf文档时如何解决?
- javascript - 如何在 Antd 中使用嵌套的单选按钮组?
- android - Android RecyclerView 滚动到特定单词
- node.js - Schema Generator 无法确定 DTO 中自定义对象的 GraphQL 输出类型
- python - 数 a 被称为关于 n 的乘法逆