在从控制器运行的 Laravel 8.12 工厂中,出现错误:
InvalidArgumentException
Unable to locate factory for [App\Models\Secret].
应用程序/模型/Secret.php :
<?php
namespace App\Models;
use DB;
use Illuminate\Database\Eloquent\Model;
class Secret extends Model
{
protected $guarded = [];
public $timestamps = false;
public function user(){
return $this->belongsTo('\App\Models\User');
}
}
在数据库/工厂/SecretFactory.php 中:
<?php
namespace Database\Factories;
use App\Models\Secret;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class SecretFactory extends Factory
{
protected $model = Secret::class;
public function definition()
{
return [
'user_id' => 1,
'secret' => $this->faker->test,
];
}
}
并在 app/Http/Controllers/Admin/DashboardController.php :
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Secret;
class DashboardController extends Controller
{
...
public function test()
{
factory(\App\Models\Secret::class, 1)->create([]);
...
我安装了
"laravel/legacy-factories": "^1.1",
运行命令:
php artisan config:cache
php artisan clear-compiled
composer dump-autoload
没有帮助
我错过了什么 ?我跑:
composer require laravel/legacy-factories
我要在其他地方注册吗?
谢谢