我正在尝试在Laravel中播种数据库。我正在使用faker为数据库播种,但我收到以下错误。
Call to undefined method Directory::create()
下面是我在表种子文件中编写的代码。基本上,我想创建一个名字和电话号码的种子。 以下是我写的代码。
<?php
use Illuminate\Database\Seeder;
use Faker\Factory as Faker;
class DirectoriesTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//Directory::truncate();
$faker = \Faker\Factory::create();
for ($i = 0; $i < 50; $i++) {
Directory::create([
'name' => $faker->name,
'number' => $faker->PhoneNumber,
]);
}
}
}
答案 0 :(得分:2)
我认为Directory
是一个模型。
<?php
use Illuminate\Database\Seeder;
use Faker\Factory as Faker;
use App\Directory;
....
答案 1 :(得分:1)
您需要在文件顶部使用模型
<?php
use Illuminate\Database\Seeder;
use Faker\Factory as Faker;
use App\Directory;
或者使用命名空间
调用模型App\Directory::create([
'name' => $faker->name,
'number' => $faker->PhoneNumber,
]);
并在模型
中修改$fillable
投手的定义
应该是protected
而不是protect
class Category extends Model
{
protected $fillable = ['name', 'number'];
}
答案 2 :(得分:0)
我也有类似的经历。在执行任何种子操作之前,请确保已安装并启用了Php Curl。您可以通过键入以下命令来安装和启用。
sudo apt install php-curl