【发布时间】:2019-12-05 17:10:25
【问题描述】:
我正在玩 laravel,正在尝试制作一个名为汽车的模型,一个名为汽车的工厂,并用 3 种不同的汽车制造随机播种。我已经到了尝试为表播种的地步,但我不断收到 SetContainer() 错误
Seeding: car
Symfony\Component\Debug\Exception\FatalThrowableError : Call to undefined method car::setContainer()
at /home/bob/myproject/vendor/laravel/framework/src/Illuminate/Database/Seeder.php:70
66| {
67| if (isset($this->container)) {
68| $instance = $this->container->make($class);
69|
> 70| $instance->setContainer($this->container);
71| } else {
72| $instance = new $class;
73| }
74|
Exception trace:
1 Illuminate\Database\Seeder::resolve("car")
/home/bob/myproject/vendor/laravel/framework/src/Illuminate/Database/Seeder.php:42
2 Illuminate\Database\Seeder::call("car")
/home/bob/myproject/database/seeds/DatabaseSeeder.php:15
Please use the argument -v to see more details.
我会在下面给你我的文件
这里是:DatabaseSeeder.php
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call(UsersTableSeeder::class);
$this->call(car::class);
}
}
这里是:app/car.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class car extends Model
{
protected $fillable = ['make','model','year'];
}
这里是:factories/car.php
<?php
/* @var $factory \Illuminate\Database\Eloquent\Factory */
use App\car;
use Faker\Generator as Faker;
$factory->define(App\car::class, function (Faker $faker) {
return [
'make' => $faker->randomElement(['ford', 'honda','toyota']),
];
});
这里是:seeds/car.php
<?php
use Illuminate\Database\Seeder;
class car extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
factory(App\car::class, 50)->create()->each(function ($car) {
$car->car()->save(factory(App\car::class)->make());
});
}
}
这里是迁移/2019_07_27_car.php
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class car extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('car', function (Blueprint $table) {
$table->string('make');
$table->string('model');
$table->string('year');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('car');
}
}
【问题讨论】:
-
试试 composer dumpautoload
-
试过这个,当运行“php artisan migrate:refresh --seed”问题仍然存在。
-
确保大写
Car而不是car -
我所有的文件都是小写的 c 但我试过了,它并没有使错误消失。您还有其他想法吗?