Laravel 8 + Tinker:如何创建虚拟数据
Laravel 8 + Tinker: How to create dummy data
在之前的 Laravel 版本中,我在 tinker 中使用了这个:
php artisan tinker
factory(App\Banana::class, 3)->create();
但是在Laravel 8中,它给出了这个错误:
`PHP 错误:Class 'Database/Factories/bananaFactory' 未找到
如何使用 tinker 在 Laravel 8 中创建虚拟数据?谢谢。
您可以通过以下步骤尝试:
- 在您的 Banana 模型中添加了 HasFactory,如下所示:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Banana extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'title', 'description'
];
}
- 创建工厂
- php artisan make:factory BananaFactory --model=Banana
- 生成 BananaFactory 后转到该路径然后:
<?php
namespace Database\Factories;
use App\Models\Post;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class BananaFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Banana::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'title' => $this->faker->title,
'description' => $this->faker->text,
];
}
}
- 之后 运行 这个命令:
composer dump-autoload
- 然后打开终端运行:
php artisan tinker
Banana::factory()->count(3)->create()
重要:这里是创建工厂相关的文档:
https://laravel.com/docs/8.x/database-testing#creating-factories
在之前的 Laravel 版本中,我在 tinker 中使用了这个:
php artisan tinker
factory(App\Banana::class, 3)->create();
但是在Laravel 8中,它给出了这个错误: `PHP 错误:Class 'Database/Factories/bananaFactory' 未找到
如何使用 tinker 在 Laravel 8 中创建虚拟数据?谢谢。
您可以通过以下步骤尝试:
- 在您的 Banana 模型中添加了 HasFactory,如下所示:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Banana extends Model
{
use HasFactory;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'title', 'description'
];
}
- 创建工厂
- php artisan make:factory BananaFactory --model=Banana
- 生成 BananaFactory 后转到该路径然后:
<?php
namespace Database\Factories;
use App\Models\Post;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
class BananaFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Banana::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'title' => $this->faker->title,
'description' => $this->faker->text,
];
}
}
- 之后 运行 这个命令:
composer dump-autoload
- 然后打开终端运行:
php artisan tinker
Banana::factory()->count(3)->create()
重要:这里是创建工厂相关的文档:
https://laravel.com/docs/8.x/database-testing#creating-factories