我enums在 Laravel 项目的根目录中手动创建了一个文件夹。目前,只有一个文件被调用TransactionTypes,我想在迁移中使用它(将来也在另一个文件中)。但是,当我测试该应用程序时,它会抛出错误。
Class "Enums\TransactionTypes" not found
Run Code Online (Sandbox Code Playgroud)
我使用这个枚举的迁移看起来像这样
<?php
use App\Models\Foodstuff;
use Enums\TransactionTypes;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('transactions', function (Blueprint $table) {
$table->id();
$table->foreignIdFor(Foodstuff::class);
$table->enum('type', TransactionTypes::cases()); // HERE
$table->unsignedInteger('stock');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('transactions');
}
};
Run Code Online (Sandbox Code Playgroud)
我已经namespace在我的枚举中声明了 a
<?php
namespace Enums;
enum TransactionTypes
{
case in;
case out;
case cancelled;
case returned;
}
Run Code Online (Sandbox Code Playgroud)
我尝试执行sail composer dump-autoload但仍然不起作用。我该如何修复它?
最好将 enums 文件夹放在应用程序文件夹中,可以将其更改为
app/Enums/TransactionTypes.php
其次,我建议对枚举类进行一些更改:
App\Enums<?php
namespace App\Enums;
enum TransactionTypes: string
{
case in = "in";
case out = "out";
case cancelled = "cancelled";
case returned = "returned";
}
Run Code Online (Sandbox Code Playgroud)
三、运行sail composer dump-autoload
| 归档时间: |
|
| 查看次数: |
4650 次 |
| 最近记录: |