Evi*_*inn 2 laravel laravel-seeding laravel-9
我有一个项目,我有一个“习惯”表,该表需要一个播种器来为其提供数据,简单地说,它是一个带有原始数据的播种器,我需要烹饪它,换句话说,我需要处理就像这样...
\npublic function run()\n{\n $Habits = [\n \'Good\' => [\'A\', \'B\', \'C\', \'D\', \'E\', \'F\', \'G\', \'H\', \'I\', \'J\'],\n \'Neutral\' => [\'k\', \'l\', \'m\', \'n\', \'o\', \'p\', \'q\', \'r\', \'t\'],\n \'\xe2\x98\xb9\xef\xb8\x8fBad\' => [\'1\', \'2\', \'3\', \'4\', \'5\', \'6\', \'7\', \'8\', \'9\', \'10\'],\n ];\n \n foreach ($habits as $habit_category => $names) {\n foreach ($names as $name) {\n DB::table(\'habits\')->insert([\n \'name\' => $name,\n \'category\' => $habit_category\n ]);\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n这是数据库播种器
\npublic function run()\n{\n $this->call([\n HabitsSeeder::class,\n ]);\n}\nRun Code Online (Sandbox Code Playgroud)\n我知道逻辑没有缺陷,但我不知道我是否做得正确,但无论如何,给出的错误在标题中:
\n\n\n“调用未定义的函数 Termwind\\ValueObjects\\mb_strimwidth()”
\n
该错误消息可能与您的播种机无关。您正在使用该nunomaduro/termwind包,该包很可能在服务提供商内部被引用。
当您调用任何 artisan 命令时,例如db:seed,这些服务提供程序将被启动,其中的任何错误都会阻止播种器运行。
mb_strimwidth包调用ValueObjects 命名空间内部的唯一位置是在这个文件中:
实际上,根本问题是您缺少mbstringPHP 扩展。因此,当 Termwind 包引用一个mb_*方法时,它无法在全局命名空间中找到该方法,而是检查包的命名空间,也找不到它,并引发错误。
查看PHP 文档,了解如何mbstring在系统中安装该软件包。
调试此类未来问题的提示是查看整个错误消息堆栈跟踪,而不仅仅是最新消息。您将能够向后工作并查看在何处调用此方法以及触发它的原因。