我正在研究Laravel,尝试创建名为"car"的模型、名为"car"的工厂,并随机添加三种不同的汽车品牌。我已经进行到了填充表格的步骤,但一直出现“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'];
}
这里是:工厂/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());
});
}
}
这里是迁移/migrations/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');
}
}
car
改为大写的Car
。 - PtrTon